当前位置: 首页 > news >正文

队列和栈相互实现

相关题目
225. 用队列实现栈:弹出元素时,将对首的元素出列加到队尾,直到只剩下初始队列时队尾一个元素为止,然后弹出这个元素,即可实现LIFO
232. 用栈实现队列:用两个栈实现队列的功能,出栈时,将栈1的元素全部弹出压到栈2中,然后弹出栈2栈顶的元素,即可实现FIFO

#  225. 用队列实现栈
class MyStack:def __init__(self):self.queue = []def push(self, x: int) -> None:self.queue.append(x)def pop(self) -> int:n = len(self.queue)while n > 1:self.queue.append(self.queue.pop(0))n -= 1return self.queue.pop(0)def top(self) -> int:return self.queue[-1]def empty(self) -> bool:return len(self.queue) == 0
# 232. 用栈实现队列
class MyQueue:def __init__(self):self.stk1 = []self.stk2 = []def push(self, x: int) -> None:self.stk1.append(x)def pop(self) -> int:# 先调⽤ peek 保证 s2 ⾮空self.peek()return self.stk2.pop()def peek(self) -> int:if not self.stk2:while self.stk1:self.stk2.append(self.stk1.pop())return self.stk2[-1]def empty(self) -> bool:return len(self.stk2) == 0 and len(self.stk1) == 0
http://www.lryc.cn/news/182297.html

相关文章:

  • Node.js 是如何处理请求的
  • 数据结构与算法之堆: Leetcode 215. 数组中的第K个最大元素 (Typescript版)
  • SpringBoot快速入门
  • 深度学习笔记_4、CNN卷积神经网络+全连接神经网络解决MNIST数据
  • 高效的开发流程搭建
  • 浅谈OV SSL 证书的优势
  • 一篇博客学会系列(3) —— 对动态内存管理的深度讲解以及经典笔试题的深度解析
  • 【C++ techniques】虚化构造函数、虚化非成员函数
  • 蓝牙核心规范(V5.4)11.6-LE Audio 笔记之初识音频位置和通道分配
  • mysql双主+双从集群连接模式
  • 嵌入式中如何用C语言操作sqlite3(07)
  • RandomForestClassifier 与 GradientBoostingClassifier 的区别
  • 计组——I/O方式
  • jsbridge实战2:Swift和h5的jsbridge通信
  • 集合原理简记
  • 机器学习的超参数 、训练集、归纳偏好
  • Leetcode1071. 字符串的最大公因子(三种方法,带详细解析)
  • 如何像人类一样写HTML之图像标签,超链接标签与多媒体标签
  • 1300*C. Rumor(并查集贪心)
  • python实用小代码(数据分析向)
  • 【oncmdmsg 鼠标】2023/8/19 上午9:50:14
  • 插入排序:简单而有效的排序方法
  • OpenGL之光照贴图
  • 隐私交易成新刚需,Unijoin 凭什么优势杀出重围?
  • 小谈设计模式(12)—迪米特法则
  • Foxit PDF
  • 《Python趣味工具》——ppt的操作(刷题版)
  • 实战型开发--3/3,clean code
  • 家用无线路由器如何用网线桥接解决有些房间无线信号覆盖不好的问题(低成本)
  • 【Golang】网络编程