Implement Queue using Stacks

IF
AlgoAxiomStaff Engineers
JSTS
Easy20 mins

Implement a first in first out (FIFO) queue using only two stacks. The implemented queue should support all the functions of a normal queue (push, peek, pop, and empty).

Implement the MyQueue class:

  • push(x) Pushes element x to the back of the queue.
  • pop() Removes the element from the front of the queue and returns it.
  • peek() Returns the element at the front of the queue.
  • empty() Returns true if the queue is empty, false otherwise.

Notes:

  • You must use only standard operations of a stack, which means only push to top, peek/pop from top, size, and is empty operations are valid.

Examples

Example 1:

Input:

`

["MyQueue", "push", "push", "peek", "pop", "empty"]

[[], [1], [2], [], [], []]

`

Output: [null, null, null, 1, 1, false]

Explanation:

`

MyQueue myQueue = new MyQueue();

myQueue.push(1); // queue is: [1]

myQueue.push(2); // queue is: [1, 2]

myQueue.peek(); // return 1

myQueue.pop(); // return 1, queue is [2]

myQueue.empty(); // return false

`

Constraints

  • 1 <= x <= 9
  • At most 100 calls will be made to push, pop, peek, and empty
  • All the calls to pop and peek are valid
Source: Stacks pattern — AlgoAxiom
JavaScript
Test Case 1
root = [1, 2, 3]
Test Case 2
root = [1, 2, 3, 4, 5]
Idle