Menu
CoddyTech

Implement Queue Using Stacks

MudahQueueStackpython iconjava iconcpp iconc iconjs icon+10

Buat antrean first in, first out yang hanya menggunakan dua stack sebagai penyimpanan. Stack hanya dapat menambahkan item di bagian atas, menghapus item teratas, membaca item teratas, dan memberi tahu apakah stack kosong. Antrean mendukung push x (menambahkan x di bagian belakang), pop (menghapus dan mengembalikan item terdepan), peek (mengembalikan item terdepan), dan empty (apakah antrean kosong?).

Kamu mendapatkan operasi secara berurutan dalam ops, dengan args[i] yang menyimpan nilai untuk push dan 0 untuk setiap operasi lainnya. Jalankan operasi tersebut pada satu antrean yang awalnya kosong, lalu kembalikan satu string untuk setiap operasi: "null" untuk push, angka dalam bentuk teks untuk pop atau peek, dan "true" atau "false" untuk empty.

Fungsi

queueOps(ops: string-array, args: integer-array) → string-array
opsstring-array
operasi-operasi, sesuai urutan pelaksanaannya
argsinteger-array
nilai untuk setiap push, 0 untuk semua operasi lainnya
Mengembalikanstring-array
satu jawaban untuk setiap operasi, sebagai teks

Batasan

  • 1 ≤ ops.length ≤ 2000
  • args.length == ops.length
  • Setiap ops[i] adalah push, pop, peek atau empty.
  • -109 ≤ args[i] ≤ 109 untuk operasi push, dan args[i] == 0 untuk operasi lainnya.
  • pop dan peek hanya dipanggil ketika antrean berisi setidaknya satu item.

Contoh

Input
ops = ["push", "push", "peek", "pop", "empty"]args = [1, 2, 0, 0, 0]
Output
["null", "null", "1", "1", "false"]
Penjelasan
Setelah memasukkan 1 lalu 2, bagian depan adalah 1, jadi peek dan pop sama-sama mengembalikan "1". Angka 2 masih berada di dalam, jadi empty mengembalikan "false".
challenge icon

Pertanyaan lanjutan

Bagaimana kamu menambahkan operasi back yang mengembalikan item terbaru dalam O(1), tanpa merusak batas amortisasi operasi lainnya?

Reset kode
def queueOps(ops, args):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

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