2025/3/2 【栈与队列】LeetCode232. 用栈实现队列
思想:用下面的两个栈模拟队列
from collections import deque class MyQueue: def __init__(self): # in主要负责push,out主要负责pop self.stackin = [] self.stackout = [] def push(self, x: int) -> None: # 有新元素进来,就往in里面push self.stackin.append(x) def pop(self) -> int: # 队列不为空时,如果out为空,则把in中元素按个pop出,append到out里 # 再从out里pop出最后一个元素(实际为in的第一个元素) # 如果out不为空,直接pop if self.empty(): return None if not self.stackout: for _ in range(len(self.stackin)): self.stackout.append(self.stackin.pop()) return self.stackout.pop() def peek(self) -> int: # pop出MyQueue对象的头元素,再append回out里 ans = self.pop() self.stackout.append(ans) return ans def empty(self) -> bool: # 只要in或者out有元素,说明队列不为空 return not(self.stackin or self.stackout) # Your MyQueue object will be instantiated and called as such: # obj = MyQueue() # obj.push(x) # param_2 = obj.pop() # param_3 = obj.peek() # param_4 = obj.empty()
分类:
每日刷题记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律