Leetcode[232] Implement Queue using Stacks
Implement the following operations of a queue using stacks.
- push(x) – Push element x to the back of queue.
- pop() – Removes the element from in front of queue.
- peek() – Get the front element.
- empty() – Return whether the queue is empty.
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, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended
queue), as long as you use only standard operations of a stack. - You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
class Queue:
# initialize your data structure here.
def __init__(self):
self.front = list()
self.end = list()
# @param x, an integer
# @return nothing
def push(self, x):
self.end.append(x)
# @return nothing
def pop(self):
if len(self.front) == 0:
while len(self.end):
item = self.end.pop()
self.front.append(item)
self.front.pop()
# @return an integer
def peek(self):
if len(self.front) == 0:
while len(self.end):
item = self.end.pop()
self.front.append(item)
return self.front[-1]
# @return an boolean
def empty(self):
if len(self.front) == 0 and len(self.end) == 0:
return True
else:
return False