Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czy jestem za głupi by programować?
porzeczki
post
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
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
SmokAnalog
post
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)
Go to the top of the page
+Quote Post
porzeczki
post
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
Go to the top of the page
+Quote Post
Pilsener
post
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)
Go to the top of the page
+Quote Post
memory
post
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
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(memory @ 10.11.2016, 11:45:22 ) *
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
Go to the top of the page
+Quote Post
porzeczki
post
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?
Go to the top of the page
+Quote Post
SmokAnalog
post
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.
Go to the top of the page
+Quote Post
porzeczki
post
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.
Go to the top of the page
+Quote Post
SmokAnalog
post
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.
Go to the top of the page
+Quote Post
porzeczki
post
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
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #12





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(porzeczki @ 10.11.2016, 15:28:47 ) *
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)
Go to the top of the page
+Quote Post
porzeczki
post
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.
Go to the top of the page
+Quote Post
SmokAnalog
post
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?
Go to the top of the page
+Quote Post
porzeczki
post
Post #15





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 15.09.2016
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


no tak
Go to the top of the page
+Quote Post
SmokAnalog
post
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)
Go to the top of the page
+Quote Post
porzeczki
post
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?
Go to the top of the page
+Quote Post
aniolekx
post
Post #18





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


wasz team - poniewaz zdobyl 100% ;D

Cytat(porzeczki @ 10.11.2016, 15:55:56 ) *
jest 100%, było 66%

czyli 66% dla mnie 34% dla ciebie.

I kto jest lepszy?

Go to the top of the page
+Quote Post
Pilsener
post
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)
Go to the top of the page
+Quote Post
nospor
post
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
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 18:54