每日leetcode——232. 用栈实现队列

题目 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty)
思路 【每日leetcode——232. 用栈实现队列】使用两个栈,stack_in栈模拟队列push,stack_out栈模拟队列pop
pop时,如果stack_out空栈,将stack_in栈依次pop到stack_out中
然后stack_out再pop

class MyQueue:def __init__(self): # 使用两个栈,stack_in栈模拟队列push,stack_out栈模拟队列pop # pop时,如果stackstack_out空栈,将stack_in栈依次pop到stack_out中 # 然后stack_out再pop self.stack_in = [] self.stack_out = []def push(self, x: int) -> None: self.stack_in.append(x)def pop(self) -> int: if not self.stack_out: while self.stack_in: self.stack_out.append(self.stack_in.pop()) return self.stack_out.pop()def peek(self) -> int: if not self.stack_out: while self.stack_in: self.stack_out.append(self.stack_in.pop()) return self.stack_out[-1]def empty(self) -> bool: return not self.stack_in and not self.stack_out

    推荐阅读