新闻详情

新闻详情

首页 / 资讯中心 / 详情

python hot 100——2 栈(自存)

发布时间:2026/9/11 9:31:24来源:尧图网络
python hot 100——2 栈(自存)
20 有效的括号1. 题目要求输入一个只包含()[]{}的字符串比如()、()[]{}、(]输出True或False规则左括号必须和相同类型的右括号闭合且顺序正确。输入结果原因()True左右匹配()[]{}True三对都匹配(]False(和]类型不同([)]False虽然类型对但顺序错了(还没闭合就先闭合了[{[]}True先开{再开[先闭]再闭}嵌套正确2. 整体思路核心思想遇到左括号就记下来遇到右括号就看能不能和最近记下来的左括号配对。为什么用栈栈是后进先出 —— 最后打开的括号要最先关闭。就像俄罗斯套娃最后放进去的那个得先拿出来。以{[]}为例一步步走步骤当前字符操作栈内内容从左到右是栈底→栈顶1{左括号入栈[?,{]2[左括号入栈[?,{,[]3]右括号和栈顶[配对成功出栈[?,{]4}右括号和栈顶{配对成功出栈[?]5结束栈只剩?说明全部匹配✅True以(]为例步骤当前字符操作栈内1(左括号入栈[?,(]2]右括号栈顶是(但(对应的是)不是]不匹配❌ 直接返回False3. 题解代码 扩展为完整程序的代码class Solution: def isValid(self, s): :type s: str :rtype: bool dic {{: }, [: ], (: )} stack [ ] for c in s: if c in dic: stack.append(c) else: # 当前是右括号 # 重点先判断栈是不是空空代表没有左括号和它配对 if len(stack) 0: return False dic[stack.pop()] ! c: return False return len(stack) 1 if __name__ __main__: sol Solution() test_cases [(), ()[]{}, (], ([)], {[]}, ] for case in test_cases: print(sol.isValid(case))4. 超详细代码逐行讲解class Solution: def isValid(self, s): # 定义方法self 固定写s 是输入字符串 :type s: str # s 是字符串 :rtype: bool dic {{: }, [: ], (: )} # 字典左括号→右括号映射 stack [] # 初始化【栈】 for c in s: # 遍历字符串每个字符 if c in dic: # 如果 c 对应字典里的 key左括号或? stack.append(c) # 左括号入【栈】记下来 else: # 当前是右括号 # 重点先判断栈是不是空空代表没有左括号和它配对 if len(stack) 0: return False dic[stack.pop()] ! c: # 否则 c 是右括号弹出栈顶查字典对比 return False # 不匹配直接返回 False return len(stack) 1 # 遍历完检查栈是否只剩?dic[stack.pop()] ! c等价拆开后的代码top_char stack.pop() # 第一步弹出栈顶元素同时栈里面删掉这个元素match_right dic[top_char] # 第二步拿栈顶左括号查它应该匹配什么右括号。if match_right ! c: # 第三步拿 “应该的右括号” 和 “当前读到的右括号 c”对比return False # 对不上直接返回False整个函数结束如果两者不相等括号配对失败 →return False直接结束程序。如果两者相等配对成功什么都不做继续循环。注意配对成功的时候没有 return直接往下走继续处理下一个字符。错误样例 s( ]初始stack [?]第一轮 c(append栈[?,(]第二轮 c]]不在 dic 的 key进入分支top_char stack.pop() # top_char(栈变为 [?]match_right dic[top_char] # match_right )if match_right ! c: # ) 和 ] 不相等条件成立return False # 直接返回False函数结束5. 本题用到的 Python 基础知识总结知识点是什么本题中的作用self类方法第一个固定参数必须写表示这个对象自己dict{ }字典键值对{key: value}存左括号→右括号对应关系list列表可变序列当栈用append()入栈pop()出栈append()列表末尾添加左括号压入栈顶pop()删除并返回末尾元素取出栈顶进行匹配in成员判断判断字符是否在字典的 key 里len()返回长度判断栈是否只剩初始的?return返回结果不匹配提前返回 False最后返回判断结果6. 易错点提醒易错点错误示范正确做法原因空栈 pop 报错stack []后直接pop()stack [?]字典加?:?输入以右括号开头时空列表 pop 会崩溃遍历完直接返回 True最后写return Truereturn len(stack) 1输入(((全是左括号不会触发 False但栈里有残留字典写反dic {): (}dic {(: )}key 必须是左括号因为遇到左括号要入栈直接比较栈顶和 cstack.pop() cdic[stack.pop()] ! c栈里存左括号c 是右括号不能直接比
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Goldie 编码 Agent:自动化生成 App Store 截图、预览视频与合规校验实战 2026/9/11 9:28:45

Goldie 编码 Agent:自动化生成 App Store 截图、预览视频与合规校验实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
DeepSeek Harness本地部署实战:从Ollama对接到底层踩坑调优 2026/9/11 9:28:45

DeepSeek Harness本地部署实战:从Ollama对接到底层踩坑调优

我是在朋友工位上看到那台“魔法终端”之后才决定动手搞 DeepSeek Harness 的。当时他屏幕上的终端窗口正在自己读代码、改文件、跑测试,旁边挂着一个本地模型的控制台,整个流程没有调用任何云端大模型 API。说实话,我之前一直觉得这类 Harne…

阅读更多 →
金融级Agent落地:从可控权限到全链路审计的设计实践 2026/9/11 9:28:45

金融级Agent落地:从可控权限到全链路审计的设计实践

做AI应用落地这几年,我最大的感受是: 金融机构不是不想上Agent,而是不敢上。 我接触过的竞调、合规、投顾、运营团队,几乎每个人都被Agent自主行动的能力吸引,但一聊到生产环境就集体退缩。原因很直接——Agent给开发…

阅读更多 →
商场室内定位导航系统哪个好?2026智慧商业室内地图解决方案商推荐 2026/9/11 9:28:45

商场室内定位导航系统哪个好?2026智慧商业室内地图解决方案商推荐

摘要:2026年,智慧商业场景对室内定位导航系统的需求持续增长。本文从系统稳定性、地图精度、部署维护成本、跨场景适配能力等维度,梳理了商场在选择室内导航系统时普遍关心的问题,并介绍五家具备项目落地能力的解决方案商&#xf…

阅读更多 →
基于 DefectDojo 构建漏洞管理仪表盘:从部署到 CI/CD 集成与执行汇报的四段式工作流 2026/9/11 9:28:45

基于 DefectDojo 构建漏洞管理仪表盘:从部署到 CI/CD 集成与执行汇报的四段式工作流

基于 DefectDojo 构建漏洞管理仪表盘:从部署到 CI/CD 集成与执行汇报的四段式工作流 【免费下载链接】Anthropic-Cybersecurity-Skills 817 structured cybersecurity skills for AI agents Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS,…

阅读更多 →
G-Helper 完整指南:华硕笔记本性能模式、风扇曲线与 GPU 切换怎么调 2026/9/11 9:25:45

G-Helper 完整指南:华硕笔记本性能模式、风扇曲线与 GPU 切换怎么调

G-Helper 完整指南:华硕笔记本性能模式、风扇曲线与 GPU 切换怎么调 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞