Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
Włączyłem pierwszy lepszy test na codility.com i głowa boli. Czy to dla was bułka z masłem? przez dwie godziny nie udało mi się napisać algorytmu na papierze, nie mówiąc o php. Coś takiego ma rozwiązać kandydat na JuniorPHP?
https://codility.com/programmers/challenges/titanium2016/ Cytat A bracket sequence is considered to be a valid bracket expression if any of the following conditions is true:
it is empty; it has the form "(U)" where U is a valid bracket sequence; it has the form "VW" where V and W are valid bracket sequences. For example, the sequence "(())()" is a valid bracket expression, but "((())(()" is not. You are given a sequence of brackets S and you are allowed to rotate some of them. Bracket rotation means picking a single bracket and changing it into its opposite form (i.e. an opening bracket can be changed into a closing bracket and vice versa). The goal is to find the longest slice (contiguous substring) of S that forms a valid bracket sequence using at most K bracket rotations. Write a function: class Solution { public int solution(String S, int K); } that, given a string S consisting of N brackets and an integer K, returns the length of the maximum slice of S that can be transformed into a valid bracket sequence by performing at most K bracket rotations. For example, given S = ")()()(" and K = 3, you can rotate the first and last brackets to get "(()())", which is a valid bracket sequence, so the function should return 6 (notice that you need to perform only two rotations in this instance, though). Given S = ")))(((" and K = 2, you can rotate the second and fifth brackets to get ")()()(", which has a substring "()()" that is a valid bracket sequence, so the function should return 4. Given S = ")))(((" and K = 0, you can't rotate any brackets, and since there is no valid bracket sequence with a positive length in string S, the function should return 0. Assume that: string S contains only brackets: '(' or ')'; N is an integer within the range [1..30,000]; K is an integer within the range [0..N]. Complexity: expected worst-case time complexity is O(N); expected worst-case space complexity is O(N) (not counting the storage required for input arguments). Ten post edytował porzeczki 10.11.2016, 18:10:57 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
Na pierwszy rzut oka to zadanie jest bardzo trudne, ale musi być łatwe rozwiązanie, skoro oczekują O(n). Najtrudniejsze jest to, że trzeba znaleźć długość sekwencji, ale nie jest powiedziane, że musi być to sekwencja od początku S.
Nie lubię takich zadań, bo mnie przytłaczają (IMG:style_emoticons/default/biggrin.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
Odetchnąłem, myślałem, że te testy są by odsiać głupich w rekrutacji, ale wychodzi na to, że to są jakieś cykliczne wyzwania dla supermądrych, którzy za rozwiązanie dostają "order", którym chwalą się na goldenline. Bardziej chodzi o powód do dumy za rozwiązanie niż wstydu za nierozwiązanie. (mam nadzieję)
dla supermądrych są cykliczne challenges https://codility.com/programmers/challenges/ dla głupich są lessons https://codility.com/programmers/lessons/ Ten post edytował porzeczki 10.11.2016, 14:29:06 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Ja z takich testów jeszcze nie dostałem chyba więcej niż 10% (IMG:style_emoticons/default/Lkingsmiley.png)
Założę się o sześciopak, że to różnego rodzaju agencje rekrutacyjne, oczekują umiejętności, które ja określam jako "akademickie" bo po prostu nie potrafią inaczej (IMG:style_emoticons/default/smile.gif) A jak już wykażesz się wybitną znajomością algorytmiki, matematyki czy właściwości języka to dostaniesz projekt w PHP 4 z 2004 roku w którym będziesz szukał nie domkniętego tagu HTML w echo() linijka 2673 (IMG:style_emoticons/default/oneeyedsmiley02.png) Uczestniczyłem w kilkuset procesach rekrutacyjnych i powiem Wam, że im bardziej wyrafinowany czy wymagający proces rekrutacji tym pracodawca zazwyczaj gorszy. Jeszcze 15 lat temu robiłem jakieś zadania testowe na 2 dni, ale dziś po prostu śmieję się i dziękuję za udział w rekrutacji, bo nie płacą mi za udzielanie się w eksperymentach socjologicznych. Widocznie jeszcze za dużo dobrych i doświadczonych programistów jest na rynku skoro można tak przebierać. I zauważyłem już dawno, że wymagania na Junior są większe niż na Senior (bo poza np. znajomością języka i doświadczeniem wymaga się studiowania co jest bzdurą - mam specjalnie iść na studia żeby dostać pracę jako junior?), natomiast płacą mniej. Pewnie dlatego nigdy nie spotkałem Junior Developera (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%)
|
Cytat kilkuset ? To przez 20 lat musiałbyś co miesiąc zmieniać prace |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
To przez 20 lat musiałbyś co miesiąc zmieniać prace Twoje założenie jest prawidłowe jedynie w świecie, gdzie 100% rozmów kończy się posadą. Założenie jest błędne, ponieważ w Polsce nie każda rozmowa kwalifikacyjna kończy się pozytywnie. Mission failed. Au revoir. Savoir-vivre. Aczkolwiek ja też nie wierzę w te kilkaset, pewnie było ich góra kilkadziesiąt. Rozmowy kwalifikacyjne są na tyle intensywnym przeżyciem, że łatwo się przeliczyć. Przykład: - O em dżi, siedziałem na tym elektrycznym krześle wieki! - Siedziałeś zaledwie 15 sekund. Ten post edytował SmokAnalog 10.11.2016, 12:46:51 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
https://codility.com/demo/results/trainingZXD8PR-UPA/
a jak rozumieć to, że funkcja zwraca raz dobre, raz złe wyniki? |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
Codility sprawdza Twój kod testami. Mają zestawy danych wejściowych i konfrontują Twoje dane wyjściowe z prawidłowymi. Firma, w której pracuję, używa Codility w procesie rekrutacyjnym i wiem, że te testy są bardzo złośliwe (IMG:style_emoticons/default/smile.gif) Sprawdzają wiele przypadków szczególnych. Ale to dobrze, o to chodzi.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
no ja rozumiem, ale dlaczego w tym konkretnym przypadku funkcja dla
100011101101110100011100001 widzi najdłuższą sekwencję zer 6 zamiast 4, a dla 1100101000000001 widzi dobrze. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
Nie do końca rozumiem Twoje pytanie. Widzi 6, bo tyle zwrócił Twój algorytm, a prawidłowa odpowiedź to 4.
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
oszczerstwo i potwarz. Jak 6 skoro 4. (chyba jednak powraca główne pytanie tego tematu (IMG:style_emoticons/default/laugh.gif) )
Ten post edytował porzeczki 10.11.2016, 15:29:45 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
Jak 6 skoro 4. No właśnie 4 (IMG:style_emoticons/default/biggrin.gif) 100011101101110100011100001 To Twój algorytm z jakiegoś powodu wywalił 6 (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
no ja wiem, że algorytm.
Dobra mniejsza z tym. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
Twój bug polega na tym, że $sequence resetujesz jedynie wtedy, kiedy jest najlepszy wynik. Widzisz to?
|
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
no tak
|
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%)
|
No to masz odpowiedź (IMG:style_emoticons/default/tongue.gif)
|
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%)
|
jest 100%, było 66%
czyli 66% dla mnie 34% dla ciebie. I kto jest lepszy? |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%)
|
|
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Cytat Aczkolwiek ja też nie wierzę w te kilkaset, pewnie było ich góra kilkadziesiąt - podczas ostatniej zmiany projektu wysłałem CV do 20 firm w najbliższej okolicy, odpowiedziało 18. Nie zawsze jest tak dobrze i czasem trzeba wysłać więcej CV - jest to trudne bo nigdy nie wiesz, ile firm odpowie, czasem 50% a czasem 90% i potem oczywiście trzeba zadzwonić i zrezygnować.Mówiąc "udział" nie miałem na myśli rozmów czy testów, tylko liczbę pozytywnych feedbacków od firm, do których wysyłałem CV. Nie ma przecież sensu rozwiązywać zadań i chodzić na rozmowy jak potem okaże się, że to staż za 80% minimalnej albo projekt sprzed 20 lat, dlatego 90% rekrutacji kończy się po rozmowie telefonicznej/wymianie emaili. I oczywiście każdy może sobie szukać takiego pracownika jaki mu odpowiada - jak ktoś chce mieć specjalistę od tego typu zadań to niech sobie szuka. Kiedyś dyrektor w jednej z firm w której pracowałem szukał kogoś kto umie pływać, bo nie miał z kim chodzić na basen. Niech każdy ma co lubi (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#20
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
@porzeczki drobna uwaga co do
if (strpos($strbin, '0') == false) { strpos moze rowniez zwrocic 0 wowczas 0 == false da ci TRUE; Musisz nauczyc sie uzywac === gdy potrzeba 0 === false da FALSE |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 18:54 |