Solution to LeetCode #232: Implement Queue using Stacks (Python)
Top 0.7% of submissions
--
This is an easy LeetCode problem
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:
void push(int x)
Pushes element x to the back of the queue.int pop()
Removes the element from the front of the queue and returns it.int peek()
Returns the element at the front of the queue.boolean empty()
Returnstrue
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
, andis empty
operations are valid. - Depending on your language, the stack may not be supported natively. You may simulate a stack using a list or deque (double-ended queue) as long as you use only a stack’s standard operations.
Python’s straightforward solution
Python makes this challenge very easy. Pretty much every operation is natively supported.
Initialize the class
In your __init__
function, set an instance variable that will hold all of our data.
class MyQueue:
def __init__(self):
self._fifo = []
When a class gets instantiated (in this case by calling MyQueue()
) the __init__()
function gets executed. Setting an instance variable saves this data to the created instance and allows you to access the self._fifo
variable from other class functions.
Implementing push
push
adds an item to the end of the queue.
push
-ing to a queue is natively supported in Python via the append
function.
class MyQueue:
def push(self, x: int) -> None:
self._fifo.append(x)