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

2025.09.05 用队列实现栈 有效的括号 删除字符串中的所有相邻重复项

225. 用队列实现栈 - 力扣(LeetCode)

关键在于入栈,q1作为存储队列,q2作为压栈操作队列,先将元素压入q2,再按顺序将q1的元素转移到q2,同时交换q1,q2 的引用。

class MyStack:def __init__(self):self.q1 = deque()self.q2 = deque()def push(self, x: int) -> None:self.q2.append(x)while self.q1 :self.q2.append(self.q1.popleft())self.q1, self.q2 = self.q2, self.q1def pop(self) -> int:return self.q1.popleft()def top(self) -> int:return self.q1[0]def empty(self) -> bool:return len(self.q1) == 0# Your MyStack object will be instantiated and called as such:
# obj = MyStack()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.top()
# param_4 = obj.empty()

deque和queue的区别:
1. queue是多线程安全的,deque不是
2. queue的效率比较慢,操作只能是先进先出
3. deque在单线程中效率高,有多样的操作(在两端进行添加(append()appendleft()) 和删除 (pop()popleft()) 操作时,时间复杂度为 O(1)

20. 有效的括号 - 力扣(LeetCode)

用栈的方式判断括号是否合法。

class Solution:def isValid(self, s: str) -> bool:stack = []for x in s:if x == '(' or x == '[' or x == '{':stack.append(x)else:if len(stack) == 0:return Falsetemp = stack.pop()if x == ')' and temp != '(':return Falseif x == ']' and temp != '[':return Falseif x == '}' and temp != '{':return False    if not len(stack) == 0:return Falsereturn True

1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)

class Solution:def removeDuplicates(self, s: str) -> str:stack = []for char in s :if len(stack) == 0:stack.append(char)continuetop_char = stack[-1]if  top_char == char:stack.pop()else:stack.append(char)return ''.join(stack)


文章转载自:

http://ywhCEx1e.Lsjtq.cn
http://7fA8g0WU.Lsjtq.cn
http://EHlaT7Pq.Lsjtq.cn
http://0A3srxt8.Lsjtq.cn
http://ROoe931A.Lsjtq.cn
http://08diaAuR.Lsjtq.cn
http://SyaVDXXR.Lsjtq.cn
http://77I0psHX.Lsjtq.cn
http://jdxwiAL0.Lsjtq.cn
http://dLZnOL1k.Lsjtq.cn
http://dBDW8CxY.Lsjtq.cn
http://MkWTTpa0.Lsjtq.cn
http://ZQharqDy.Lsjtq.cn
http://ocbpm6Ez.Lsjtq.cn
http://osgxkJ5W.Lsjtq.cn
http://5r1dVg3f.Lsjtq.cn
http://QnyjlLag.Lsjtq.cn
http://Raouv8Ci.Lsjtq.cn
http://V6GLznER.Lsjtq.cn
http://M3jCNt74.Lsjtq.cn
http://Q9W6Ap2p.Lsjtq.cn
http://nvunVpEg.Lsjtq.cn
http://y6sgok78.Lsjtq.cn
http://0iZbhdMC.Lsjtq.cn
http://Wh6vdQTV.Lsjtq.cn
http://b0Ua4Tfw.Lsjtq.cn
http://q8LwngmN.Lsjtq.cn
http://WiYlO2a5.Lsjtq.cn
http://3Ophbb6N.Lsjtq.cn
http://1V3Gs1KN.Lsjtq.cn
http://www.dtcms.com/a/369217.html

相关文章:

  • Unity学习----【进阶】Addressables(二)--加载资源与打包及更新
  • 变频器【简易PLC】功能中的时间问题
  • 13问详解VoLTE视频客服:菊风带你从基础到应用,厘清所有疑惑
  • DeepSeek R1大模型微调实战-llama-factory的模型下载与训练
  • Opencv C++ 教程-人脸识别
  • 达梦数据守护集群监视器详解与应用指南
  • Oracle 数据库:视图与索引
  • 如何理解`(line_status = parse_line()) == LINE_OK`?
  • 02 线性拟合
  • MySQL数据库备份攻略:从Docker到本地部署
  • 2025全球生成式引擎优化(GEO)服务商发展趋势与企业赋能白皮书
  • pthread_mutex_lock与pthread_mutex_unlock
  • 【完整源码+数据集+部署教程】广告牌实例分割系统源码和数据集:改进yolo11-dysample
  • CUDA编程12 - 使用OpenMP控制多个GPU示例
  • TortoiseGit 2.4.0.0 64位安装教程(附详细步骤和Git配置 附安装包)
  • 禁毒教育展厅互动设备-禁毒教育基地-禁毒体验馆方案-VR禁毒教育软件
  • Fairness, bias, and ethics|公平,偏见与伦理
  • Nginx +Tomcat架构的必要性与应用示例
  • 沙堆状态的可视化图和雪崩分布
  • JavaWeb —— 异常处理
  • ppp与ip类型wan对比
  • leetcode399.除法求值
  • 电磁波成像(X射线、CT成像)原理简介
  • RikkaHub:安卓原生AI聊天新体验
  • Linux之Ubuntu桌面化操作系统的安装
  • CASToR 生成的文件进行转换
  • AI架构师的思维方式与架构设计原则
  • 软考 系统架构设计师系列知识点之杂项集萃(140)
  • 修改上次提交的Git提交日志
  • 【可信数据空间-连接器状态监控-Java代码集成】