Menu
CoddyTech

Implement Stack using Queues

FacileFilePilepython iconjava iconcpp iconc iconjs icon+10

Construis une pile dernier entré, premier sorti dont le seul espace de stockage est constitué de files. Une file ne peut qu’ajouter un élément à la fin, supprimer ou lire l’élément en tête et indiquer sa taille. La pile prend en charge push x (placer x au sommet), pop (supprimer et renvoyer l’élément au sommet), top (renvoyer l’élément au sommet sans le supprimer) et empty (la pile est-elle vide ?).

Les opérations arrivent dans l’ordre dans ops, et args[i] contient la valeur à utiliser pour un push, et 0 dans les autres cas. Exécute-les sur une pile vide et renvoie une chaîne par opération : "null" pour un push, le nombre sous forme de texte pour un pop ou un top, et "true" ou "false" pour empty.

Fonction

stackOps(ops: string-array, args: integer-array) → string-array
opsstring-array
les opérations, dans l’ordre où elles sont exécutées
argsinteger-array
la valeur pour chaque push, 0 pour toute autre opération
Renvoiestring-array
une réponse par opération, sous forme de texte

Contraintes

  • 1 ≤ ops.length ≤ 1000
  • args.length == ops.length
  • Chaque ops[i] est push, pop, top ou empty.
  • -109 ≤ args[i] ≤ 109 pour une opération d’insertion, et args[i] == 0 pour toute autre opération.
  • pop et top ne sont appelés que lorsque la pile contient au moins un élément.

Exemples

Entrée
ops = ["push", "push", "top", "pop", "empty"]args = [1, 2, 0, 0, 0]
Sortie
["null", "null", "2", "2", "false"]
Explication
2 est entré en dernier, il est donc au sommet : top et pop renvoient tous deux "2". Le 1 est toujours à l’intérieur, donc empty renvoie "false".
challenge icon

Pour aller plus loin

Peux-tu conserver une seule file, mais déplacer le travail de l’ajout vers le retrait, afin que l’ajout soit en O(1) ?

Réinitialiser le code
def stackOps(ops, args):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

["null", "null", "2", "2", "false"]