每日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
推荐阅读
- 『德不孤』Pytest框架|『德不孤』Pytest框架 — 15、Pytest参数化
- LittleTips——显示当前程序快捷键列表
- Element|Element Plus 源码分析——构建与代码风格
- python|数字图像基本操作——图像采样、量化、算术运算、点运算实验结果及分析
- —OpenCV|OpenCV-Python——第7章(图像的基本运算)
- 机器学习 —— 类不平衡问题与SMOTE过采样算法
- OpenCV|OpenCV图像处理和应用—色彩空间与几何变换(一)
- OpenCV从入门到精通|OpenCV中的图像处理 —— 改变颜色空间+图像几何变换
- OpenCV从入门到精通|OpenCV的核心操作 —— 图像的基本操作+图像上的算术运算
- 绍耕的反失败学|营养补充剂——镁