Menu
CoddyTech

Implement Queue Using Stacks

Erstelle eine FIFO-Warteschlange, deren einziger Speicher aus zwei Stapeln besteht. Ein Stapel darf ein Element nur oben hinzufügen, das oberste Element entfernen, das oberste Element lesen und angeben, ob er leer ist. Die Warteschlange unterstützt push x (fügt x hinten hinzu), pop (entfernt das vorderste Element und gibt es zurück), peek (gibt das vorderste Element zurück) und empty (ist die Warteschlange leer?).

Du erhältst die Operationen der Reihe nach in ops, wobei args[i] den Wert für ein push und 0 für jede andere Operation enthält. Führe sie auf einer Warteschlange aus, die anfangs leer ist, und gib für jede Operation einen String zurück: "null" für ein push, die Zahl als Text für ein pop oder peek und "true" oder "false" für empty.

Funktion

queueOps(ops: string-array, args: integer-array) → string-array
opsstring-array
die Operationen in der Reihenfolge, in der sie ausgeführt werden
argsinteger-array
der Wert für jeden Push, 0 für jede andere Operation
Gibt zurückstring-array
eine Antwort pro Operation, als Text

Einschränkungen

  • 1 ≤ ops.length ≤ 2000
  • args.length == ops.length
  • Jedes ops[i] ist push, pop, peek oder empty.
  • -109 ≤ args[i] ≤ 109 bei einem Push und args[i] == 0 bei jeder anderen Operation.
  • pop und peek werden nur aufgerufen, wenn die Warteschlange mindestens ein Element enthält.

Beispiele

Eingabe
ops = ["push", "push", "peek", "pop", "empty"]args = [1, 2, 0, 0, 0]
Ausgabe
["null", "null", "1", "1", "false"]
Erklärung
Nachdem 1 und dann 2 eingefügt wurden, ist 1 vorne, also geben peek und pop beide "1" zurück. Die 2 ist noch enthalten, daher gibt empty "false" zurück.

lock icon+15 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Wie würdest du eine back-Operation hinzufügen, die das neueste Element in O(1) zurückgibt, ohne die amortisierte Schranke der anderen Operationen zu verletzen?

Code zurücksetzen
def queueOps(ops, args):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

ops = ["push", "push", "peek", "pop", "empty"]
args = [1, 2, 0, 0, 0]

Erwartet

["null", "null", "1", "1", "false"]