题目链接:https://leetcode.cn/problems/implement-stack-using-queues/description/
1)用 collections.deque 实现队列
deque 是双端队列,适合高效的头尾操作:
class MyStack:
def __init__(self):
self.que = deque()
def push(self, x: int) -> None:
self.que.append(x)
def pop(self) -> int:
if self.empty():
return None
for i in range(len(self.que)-1):
self.que.append(self.que.popleft())
return self.que.popleft()
def top(self) -> int:
if self.empty():
return None
for i in range(len(self.que)-1):
self.que.append(self.que.popleft())
tmp = self.que.popleft()
self.que.append(tmp)
return tmp
def empty(self) -> bool:
return not self.que