Alternatywne pytania FizzBuzz [zamknięte]

Ktoś ma jakieś dobre pytania typu FizzBuzz, które nie są problemem FizzBuzz?

Przeprowadzam wywiad z kimś, A FB jest stosunkowo dobrze znane i nie takie trudne do zapamiętania, więc moim pierwszym przystankiem w poszukiwaniu pomysłów jest moje nowe uzależnienie.

 78
Author: Andrew Burns, 2008-09-23

14 answers

Widziałem małą listę stosunkowo prostych problemów programistycznych używanych do usuwania kandydatów, tak jak FizzBuzz. Oto niektóre z problemów, które widziałem, w kolejności rosnącej trudności:

  1. Odwróć ciąg
  2. Odwróć zdanie ("bob lubi psy" -> "psy lubią Boba")
  3. Znajdź minimalną wartość na liście
  4. Znajdź maksymalną wartość na liście
  5. Oblicz resztę (podaj licznik i mianownik)
  6. zwraca różne wartości z listy w tym duplikaty (tj. "1 3 5 3 7 3 1 1 5" -> "1 3 5 7")
  7. zwraca różne wartości i ich liczby (tzn. Powyższa lista staje się "1(3) 3(3) 5(2) 7(1)")
  8. biorąc pod uwagę ciąg wyrażeń (tylko zmienne, + i -) oraz zestaw par zmienna/wartość (tj. a=1, b=7, c=3, d=14) zwraca wynik wyrażenia ("a + b+c-d" byłoby -3).

Były one przeznaczone dla Javy i można było użyć standardowych bibliotek, aby niektóre z nich były niezwykle proste(jak 6). Ale działają jak FizzBuzz. Jeśli masz pojęcie o programowaniu, powinieneś być w stanie zrobić to bardzo szybko. Nawet jeśli nie znasz dobrze języka, powinieneś przynajmniej być w stanie dać pomysł, jak coś zrobić.

Korzystając z tego testu jeden z moich poprzednich szefów widział wszystko, od ludzi, którzy pokonali to wszystko dość szybko, przez ludzi, którzy mogli zrobić bardzo szybko, do jednego faceta, który nie mógł odpowiedzieć na ani jednego po pół godzinie.

Powinienem również zauważyć: pozwolił ludziom korzystać z komputera podczas otrzymali te zadania. Zostały one specjalnie poinstruowane, że mogą używać Google i tym podobne.

 93
Author: MBCook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:54:42

Być może to nie odpowiada bezpośrednio na twoje pytanie, ale nie jestem pewien, czy musisz wymyślić inny problem. Poza tym, że jest "łatwe do zapamiętania", pytanie FizzBuzz jest po prostu "łatwe" i o to chodzi. Jeśli osoba, z którą przeprowadzasz wywiad, jest w klasie osób, którym FizzBuzz jest "dobrze znany", to jest w klasie osób, których pytanie typu FizzBuzz nie odfiltrowałoby. Nie oznacza to, że zatrudniasz ich na miejscu, ale oznacza to, że powinni być / align = "left" /

Mówiąc inaczej, każdy, kto poświęci czas na przeczytanie Coding Horror , jest wart dalszych wywiadów. Po prostu niech szybko napiszą rozwiązanie, omówią je krótko (np. Jak to przetestować?), a następnie przejść do następnego pytania. I jak mówi artykuł, " to naprawdę zdumiewające, jak wielu kandydatów jest niezdolnych do najprostszych zadań programistycznych."

 26
Author: Brandon DuRette,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 02:39:47

Każdy z pierwszych z projektu Euler byłby prawdopodobnie dobry.

Na przykład:

Problem 25

Ciąg Fibonacciego jest określony relacją powtarzania:

Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.

Stąd pierwsze 12 terminów będzie:

F1 = 1
F2 = 1
F3 = 2
F4 = 3
F5 = 5
F6 = 8
F7 = 13
F8 = 21
F9 = 34
F10 = 55
F11 = 89
F12 = 144

Dwunasty termin, F12, jest pierwszym terminem, który zawiera trzy cyfry.

Jaki jest indeks pierwszego terminu w ciągu Fibonacciego do zawiera 1000 cyfr?

 22
Author: shelfoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-06 12:33:30

Znalazłem sprawdzanie ciągu, czy jest to palindrom, jest dość proste, które może być przyzwoitym weederem.

 11
Author: Mike Stone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:47:54

Chciałem pytanie FizzBuzz, które nie dotyczy operatora modulo. Zwłaszcza, że zazwyczaj przeprowadzam wywiady z programistami, dla których operator modulo nie pojawia się tak często. A jeśli nie jest to coś, na co wpadasz regularnie, jest to jedna z tych rzeczy, które sprawdzasz kilka razy, gdy tego potrzebujesz.

(oczywiście, jest to pojęcie, które, najlepiej, powinieneś spotkać się na kursie matematyki gdzieś po drodze, ale to inny temat.)

Więc co wymyśliłem z tym, co nazywam, niewyobrażalnie, trójkami na odwrót . Instrukcja jest:

Napisz program, który wyświetla, w odwrotnej kolejności , co wielokrotność 3 między 1 A 200.

Robienie tego w normalnej kolejności to proste: pomnóż indeks pętli przez 3, aż osiągniesz liczbę przekraczającą 200, a następnie zakończ. Nie musisz się martwić o liczbę iteracji do zakończenia, po prostu kontynuuj, aż osiągniesz pierwszą wartość, która jest zbyt wysoka.

Ale cofając się, musisz wiedzieć, od czego zacząć. Niektórzy mogą intuicyjnie uświadomić sobie, że 198 (3 * 66) jest najwyższą wielokrotnością 3, i jako taki, twardy kod 66 W pętli. Inni mogą użyć operacji matematycznej (dzielenie liczb całkowitych lub floor() na dzieleniu zmiennoprzecinkowym 200 i 3), aby obliczyć tę liczbę i w ten sposób podać coś bardziej ogólnego zastosowania.

Zasadniczo jest to ten sam problem co FizzBuzz (zapętlenie wartości i wydrukowanie ich, z twist). To jest problem do rozwiązania, który nie używa niczego tak (względnie) ezoterycznego jak operacja modulo.

 9
Author: Legion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-25 05:56:05

Dla czegoś naprawdę super-prostego, co można zrobić w 10 sekund, ale usunie tych ludzi, którzy dosłownie nie potrafią zaprogramowaćniczego , Spróbuj tego:

Ask: Pokaż mi (na papierze, ale lepiej na tablicy) jak można zamienić wartości dwóch zmiennych.

To nie był mój pomysł, ale został opublikowany w komentarzuprzez kogoś o imieniu Jacob na blogu Wszystko o oryginalnym pytaniu FizzBuzz.

Jakub idzie na powiedz:

Jeśli nie zaczynają od utworzenia trzecia zmienna, można prawie Odpisz tę osobę. I ' ve found that Mogę wyciąć jedną trzecią do połowy mojego (co prawda w tym momencie Nie) wnioskodawców z tym pytaniem.

Jest kolejna ciekawa dyskusja po tym komentarzu na oryginalnym blogu o sposobach wykonywania tej zmiennej zamiany bez konieczności trzeciej zmiennej (dodawanie/odejmowanie, xor itp.), i oczywiście, jeśli używasz języka, który obsługuje to w jednej instrukcji/operacji, to może nie być taki dobry test.

Chociaż nie mój pomysł, chciałem opublikować to tutaj, ponieważ jest to tak elegancko proste, łatwe pytanie, na które może (i powinno) odpowiedzieć w ciągu około 10 sekund ktoś, kto napisał nawet najprostszy z programów. To również nie wymaga użycia nieco pozornie niejasnych operatorów, takich jak operator modulo, które Wiele osób, które są w przeciwnym razie dość przyzwoite Programiści, po prostu nie są zaznajomieni (co znam z własnego doświadczenia).

 8
Author: CraigTP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-30 10:05:41

Fibonacciego, odwraca ciąg, zlicza liczbę bitów ustawionych w bajcie są inne popularne. projekt Euler ma również duży zbiór rosnących trudności.

 7
Author: Tom Ritter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:42:04

Poproś ich o napisanie aplikacji, która zwróci czynniki danej liczby. Jest to łatwe do zrobienia i trudne do zrobienia dobrze w krótkim czasie. Możesz zobaczyć ich styl i sposób, w jaki myślą o problemach w krótkim czasie.

 3
Author: Cody Brocious,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:42:26

Zwraca indeks pierwszego występowanie łańcucha X w łańcuchu y

Implementacja strstr() wymaga podstawowego zrozumienia języka, zapewniając jednocześnie możliwość inteligentnej optymalizacji.

 2
Author: Justin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:55:27

Jeśli jest to wywiad w C / C++ upewnij się, że dana osoba wie o wskaźnikach.

Ogólne-algorytm prosty ([single/double]linked list). Zapytaj o złożoność dodawania w każdym przypadku (na początku, na końcu, optymalizacje ...) ?

(ogólne) Jak znaleźć min i max z tablicy (Rozmiar N) Z zaledwie 3*N/2 porównań?

C / C++: jak zoptymalizować wiele "strcat" s do bufora ?

 2
Author: INS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 22:02:41
 1
Author: John,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:48:50

A może: Chcę użyć pojedynczej liczby całkowitej do przechowywania wielu wartości. Opisz, jak to działa.

Jeśli nie mają pojęcia o maskach bitowych i operacjach, prawdopodobnie nie mogą rozwiązać innych problemów.

 0
Author: torial,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:45:36

Znajdź listę liczb pierwszych jest dość powszechnym pytaniem, ale nadal wymaga zastanowienia i istnieje różny stopień odpowiedzi, które ludzie mogą dać.

Zdziwiłbyś się też, jak wiele osób ma problemy z implementacją struktury danych typu Mapa/Słownik.

 0
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:55:22

Poprosiłem moich kandydatów o stworzenie programu do obliczania iloczynu danej liczby w dowolnym pseudo języku. Jest to dość łatwy problem do rozwiązania i dobrze nadaje się do naturalnych pytań następczych (które często można zapytać) o rekursję.

 0
Author: UlfR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-09 11:42:39