InterviewHubPRO
Section Overview
Q34

Question 34 of 100

Part 4: Stacks, Queues & Monotonic Stacks (29 - 36)

34%
DSA Patterns (Multi-Lang)•Part 4: Stacks, Queues & Monotonic Stacks (29 - 36)

Implement Queue using Stacks.

In Simple Words: Use two stacks: inStack for pushes, outStack for pops/peeks. When outStack is empty, transfer all elements from inStack to reverse their order into FIFO.

  • Time: Amortized $O(1)$ per operation | Space: $O(N)$
Multi-Language Solutions
Switch tabs or choose All
class MyQueue:
    def __init__(self):
        self.in_s = []
        self.out_s = []

    def push(self, x: int) -> None:
        self.in_s.append(x)

    def pop(self) -> int:
        self.peek()
        return self.out_s.pop()

    def peek(self) -> int:
        if not self.out_s:
            while self.in_s:
                self.out_s.append(self.in_s.pop())
        return self.out_s[-1]

    def empty(self) -> bool:
        return not self.in_s and not self.out_s