跳至内容
232. 用栈实现队列
- class MyQueue:
- def __init__(self):
- self.stack_in=[]
- self.stack_out=[]
- def push(self, x: int) -> None:
- self.stack_in.append(x)
- def pop(self) -> int:
- if self.empty():
- return None
- if self.stack_out:
- return self.stack_out.pop()
- else:
- for i in range(len(self.stack_in)):
- self.stack_out.append(self.stack_in.pop())
- return self.stack_out.pop()
- def peek(self) -> int:
- ans=self.pop()
- self.stack_out.append(ans)
- return ans
- def empty(self) -> bool:
- return not (self.stack_in or self.stack_out)
- 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 not self.empty():
- return self.que[-1]
- return None
- # if self.empty():
- # return None
- # for i in range(len(self.que)-1):
- # self.que.append(self.que.popleft())
- # ans=self.que.popleft()
- # self.que.append(ans)
- # return ans
- def empty(self) -> bool:
- return not self.que