Menu
CoddyTech

Implement Queue Using Stacks

FácilColaPilapython iconjava iconcpp iconc iconjs icon+10

Construye una cola de primero en entrar, primero en salir cuyo único almacenamiento sean dos pilas. Una pila solo puede añadir un elemento en la parte superior, quitar el elemento superior, leer el elemento superior e indicar si está vacía. La cola admite push x (añadir x al final), pop (quitar y devolver el elemento del frente), peek (devolver el elemento del frente) y empty (¿está vacía la cola?).

Recibes las operaciones en orden como ops, con args[i] que contiene el valor para una operación push y 0 para cualquier otra operación. Ejecútalas en una única cola que empieza vacía y devuelve una cadena por operación: "null" para una operación push, el número como texto para una operación pop o peek, y "true" o "false" para empty.

Función

queueOps(ops: string-array, args: integer-array) → string-array
opsstring-array
las operaciones, en el orden en que se ejecutan
argsinteger-array
el valor para cada operación push, 0 para todas las demás operaciones
Devuelvestring-array
una respuesta por operación, como texto

Restricciones

  • 1 ≤ ops.length ≤ 2000
  • args.length == ops.length
  • Cada ops[i] es push, pop, peek o empty.
  • -109 ≤ args[i] ≤ 109 para una inserción, y args[i] == 0 para cualquier otra operación.
  • pop y peek solo se llaman cuando la cola contiene al menos un elemento.

Ejemplos

Entrada
ops = ["push", "push", "peek", "pop", "empty"]args = [1, 2, 0, 0, 0]
Salida
["null", "null", "1", "1", "false"]
Explicación
Después de insertar 1 y después 2, el frente es 1, así que peek y pop devuelven "1". El 2 sigue dentro, así que empty devuelve "false".

lock icon+15 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Cómo añadirías una operación back que devuelva el elemento más reciente en O(1), sin romper el límite amortizado de las demás operaciones?

Restablecer código
def queueOps(ops, args):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

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