Frage Alternative FizzBuzz-Fragen [geschlossen]


Jeder hat gute FizzBuzz-Fragen, die es nicht gibt das FizzBuzz Problem?

Ich interviewe jemanden und FB ist relativ bekannt und nicht so schwer auswendig zu lernen, also ist mein erster Halt auf der Suche nach Ideen meine neue Sucht SO.


75
2017-09-22 21:39


Ursprung


Antworten:


Ich habe eine kleine Liste von relativ einfachen Programmierproblemen gesehen, die verwendet wurden, um Kandidaten auszusortieren, genau wie FizzBuzz. Hier sind einige der Probleme, die ich gesehen habe, in der Reihenfolge zunehmender Schwierigkeiten:

  1. Kehren Sie eine Zeichenfolge um
  2. Reverse einen Satz ("Bob mag Hunde" -> "Hunde mag Bob")
  3. Ermitteln Sie den Mindestwert in einer Liste
  4. Finde den maximalen Wert in einer Liste
  5. Berechnen Sie einen Rest (bei einem Zähler und Nenner)
  6. Rückgabe eindeutiger Werte aus einer Liste mit Duplikaten (d. H. "1 3 5 3 7 3 1 1 5" -> "1 3 5 7")
  7. Rückgabe bestimmter Werte und ihrer Zählwerte (d. H. Die obige Liste wird zu "1 (3) 3 (3) 5 (2) 7 (1)")
  8. Eine Folge von Ausdrücken (nur Variablen, + und -) und eine Menge von Variablen / Wert-Paaren (dh a = 1, b = 7, c = 3, d = 14) geben das Ergebnis des Ausdrucks ("a +") zurück b + c -d "wäre -3).

Diese waren für Java, und Sie könnten die Standard-Bibliotheken verwenden, so dass einige von ihnen extrem einfach sein können (wie 6). Aber sie funktionieren wie FizzBuzz. Wenn Sie eine Ahnung von Programmierung haben, sollten Sie in der Lage sein, ziemlich schnell zu tun. Selbst wenn du die Sprache nicht gut beherrschst, solltest du zumindest die Idee hinter dem tun können, was zu tun ist.

Mit diesem Test sah einer meiner früheren Bosse alles von Leuten, die alles ziemlich schnell machten, bis zu Leuten, die es am schnellsten konnten, zu einem Typen, der nach einer halben Stunde keinen einzigen beantworten konnte.

Ich sollte auch beachten: Er ließ Leute seinen Computer benutzen, während sie diese Aufgaben erhielten. Sie wurden speziell angewiesen, dass sie könnte Verwenden Sie Google und dergleichen.


90
2017-09-22 21:54



Vielleicht beantwortet das Ihre Frage nicht direkt, aber ich bin mir nicht sicher, ob Sie ein anderes Problem haben müssen. Abgesehen davon, dass "FizzBuzz" einfach zu merken ist, ist sie einfach "einfach", und darum geht es. Wenn die Person, die Sie interviewen, in der Klasse von Personen ist, für die FizzBuzz "bekannt" ist, dann gehören sie zu der Klasse von Personen, die eine Frage vom Typ FizzBuzz nicht herausfiltern würde. Das bedeutet nicht, dass Sie sie auf der Stelle einstellen, aber es bedeutet, dass sie in der Lage sein sollten, durch sie zu blasen und zum Fleisch des Interviews zu kommen.

Um es anders auszudrücken, jeder, der sich die Zeit nimmt zu lesen Kodierung Horror Es lohnt sich, weiter zu interviewen. Lassen Sie sie die Lösung wirklich schnell aufschreiben, besprechen Sie sie kurz (z. B. Wie testen Sie das?) Und gehen Sie dann zur nächsten Frage über. Und wie der Artikel sagt: "Es ist wirklich erstaunlich, wie viele Kandidaten zu den einfachsten Programmieraufgaben nicht in der Lage sind."


26
2017-09-23 02:39



Irgendwelche der frühen von Projekt Euler wäre wahrscheinlich gut.

Beispielsweise:

Problem 25

Die Fibonacci-Sequenz wird durch die Rekursionsbeziehung definiert:

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

Daher werden die ersten 12 Begriffe sein:

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

Der 12. Ausdruck, F12, ist der erste Ausdruck, der drei Ziffern enthält.

Wie lautet der Index des ersten Terms in der Fibonacci-Sequenz?   enthalten 1000 Ziffern?


21
2017-09-22 22:12



Ich habe gefunden, eine Schnur zu überprüfen, wenn es ein palindrome ist, ist ein ziemlich einfaches, das ein annehmbarer weeder sein kann.


11
2017-09-22 21:47



Fibonacci, eine Zeichenfolge umzukehren, die Anzahl der in einem Byte gesetzten Bits zu zählen, sind andere gebräuchliche. Projekt Euler hat auch eine große Sammlung von zunehmender Schwierigkeit.


7
2017-09-22 21:42



Für etwas wirklich Super-Simple, das in 10 Sekunden erledigt werden kann, aber würde jene Leute entfernen, die buchstäblich nicht programmieren können etwas, Probier diese:

Fragen Sie: Zeigen Sie mir (auf dem Papier, aber besser auf   ein Whiteboard), wie Sie das tauschen würden   Werte von zwei Variablen.

Das war nicht meine Idee, aber war in einem Kommentar gepostet von jemandem namens Jacob auf einem Blogeintrag alles über die ursprüngliche FizzBuzz-Frage.

Jacob fährt fort zu sagen:

Wenn sie es nicht tun Anfang mit dem Erstellen eines   dritte Variable, können Sie ziemlich viel   schreibe diese Person ab. Ich habe das gefunden   Ich kann ein Drittel bis zur Hälfte meines schneiden   (freilich zu diesem Zeitpunkt nicht gescreent)   Bewerber mit dieser Frage allein.

Es gibt eine weitere interessante Diskussion nach dem Kommentar zum ursprünglichen Blog-Post über Möglichkeiten, dieses Variablen-Swapping auszuführen, ohne eine dritte Variable zu benötigen (Addieren / Subtrahieren, Xor usw.), und natürlich, wenn Sie eine Sprache verwenden, die dies unterstützt in einer einzigen Anweisung / Operation kann es nicht so ein guter Test sein.

Obwohl das nicht meine Idee war, wollte ich dies hier posten, da es eine so einfache, einfache und einfache Frage ist, die innerhalb von 10 Sekunden von jemandem beantwortet werden kann (und sollte), der selbst die einfachsten Programme geschrieben hat. Es erfordert auch nicht die Verwendung von etwas scheinbar obskuren Operatoren wie dem Modulo-Operator, den viele Leute, die ansonsten ziemlich anständige Programmierer sind, einfach nicht kennen (was ich aus eigener Erfahrung weiß).


7
2017-10-30 09:41



Ich wollte eine FizzBuzz-Frage, die den Modulo-Operator nicht betrifft. Zumal ich in der Regel Webentwickler interviewe, für die der Modulo-Operator nicht so oft auftaucht. Und wenn Sie nicht regelmäßig darauf stoßen, ist es eines dieser Dinge, die Sie nachschlagen, wenn Sie es brauchen.

(Zugegeben, es ist ein Konzept, das Sie im Idealfall irgendwo in einem Mathe-Kurs gefunden haben sollten, aber das ist ein anderes Thema.)

Also, was ich mir ausgedacht habe, ist das, was ich einfallslos nenne, Drei in umgekehrter Richtung. Die Anweisung ist:

Schreibe ein Programm, das ausdruckt, in umgekehrte Reihenfolge, jedes Vielfache von 3 zwischen 1 und 200.

Machen Sie es in der normalen Reihenfolge einfach: Multiplizieren Sie den Schleifenindex mit 3, bis Sie eine Zahl erreichen, die 200 übersteigt, und beenden Sie dann. Sie müssen sich keine Gedanken darüber machen, wie viele Iterationen Sie nachher beenden möchten. Sie müssen nur weitermachen, bis Sie den ersten Wert erreicht haben, der zu hoch ist.

Aber rückwärts gehen, müssen Sie wissen, wo ich anfangen soll. Einige könnten intuitiv erkennen, dass 198 (3 * 66) das höchste Vielfache von 3 ist, und als solches den Code 66 in die Schleife schreiben. Andere könnten eine mathematische Operation (Ganzzahldivision oder Floor () auf einer Gleitkommadivision von 200 und 3) verwenden, um diese Zahl herauszufinden und dadurch etwas Generisch anwendbares zu liefern.

Im Wesentlichen ist es die gleiche Art von Problem wie FizzBuzz (Durchlaufen von Werten und Ausdrucken mit einer Wendung). Dies ist ein zu lösendes Problem, das nichts ganz so (relativ) Esoterisches wie die Modulo-Operation verwendet.


6
2017-10-25 05:56



Bitten Sie sie, eine App zu schreiben, um die Faktoren einer bestimmten Zahl zurückzugeben. Es ist leicht zu tun und in kurzer Zeit schwer zu erreichen. Sie können ihren Stil und die Art, wie sie Probleme in kurzer Zeit durchdenken, sehen.


3
2017-09-22 21:42



Gib den Index des ersten zurück   Vorkommen von String X in String Y

Die Implementierung von strstr () erfordert ein grundlegendes Verständnis der Sprache und bietet gleichzeitig die Möglichkeit für clevere Optimierung.


2
2017-09-22 21:55



Wenn es ein C / C ++ - Interview ist, stellen Sie sicher, dass die Person über Zeiger weiß.

Allgemein - einfacher Algorithmus (verknüpfte Liste [single / double]). Fragen Sie nach Komplexität des Hinzufügens in jedem Fall (am Anfang, am Ende, Optimierungen ...)?

(Allgemein) Wie finden Sie Min und Max aus einem Array (N-Größe) mit nur 3 * N / 2 Vergleichen?

C / C ++: Wie würden Sie mehrere "strcat" s zu einem Puffer optimieren?


2
2017-09-22 22:02