Solution to LeetCode #232: Implement Queue using Stacks (Python)

Top 0.7% of submissions

Jacob Bennett

--

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() 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.
  • 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)

--

--

Jacob Bennett

Staff Software Engineer @ Medium • https://jacob.bio • I write about software engineering, product design and development, and leadership in tech.