鱼C论坛

 找回密码
 立即注册
查看: 1224|回复: 3

[已解决]测试括号是否合法

[复制链接]
发表于 2022-1-15 19:26:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
没有太看懂,如果是合法的话,栈是什么时候被清空的呢?没看懂为什么stack在合法的情况下长度就是零了
最佳答案
2022-1-15 20:59:50

问这类似的问题建议将栈类 和 算法代码一同发出,这样才能帮你解析你的代码问题

这里大概的解释下,可能和你源码会有些出入,本质上是差不多,因为算法代码不同,解释也自然有所出入:

      因为你遇到括号 (、[、{ 时,才将其压入栈中,当你遇到其他括号 )、]、} 时 就在此时查看栈顶元素

      判断此时循环到的括号是否与栈顶元素的括号互补:

            若互补,将此时栈顶元素正常弹出并开始下次循环,所以最终若所有括号都正常匹配,就会依次从栈中弹出,最终栈为空,返回 True ,此时所给的括号序列就符合规则

            若不互补,则直接结束循环,返回 False ,此时所给的括号序列就不符合规则,而因为直接结束循环而没有将此时栈顶元素弹出,所以导致栈不为空

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-15 19:51:53 From FishC Mobile | 显示全部楼层
没代码吗?不过我印象好像有个pop,了解下pop就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-15 19:56:42 | 显示全部楼层
好像遇到匹配的就会pop弹出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-15 20:59:50 | 显示全部楼层    本楼为最佳答案   

问这类似的问题建议将栈类 和 算法代码一同发出,这样才能帮你解析你的代码问题

这里大概的解释下,可能和你源码会有些出入,本质上是差不多,因为算法代码不同,解释也自然有所出入:

      因为你遇到括号 (、[、{ 时,才将其压入栈中,当你遇到其他括号 )、]、} 时 就在此时查看栈顶元素

      判断此时循环到的括号是否与栈顶元素的括号互补:

            若互补,将此时栈顶元素正常弹出并开始下次循环,所以最终若所有括号都正常匹配,就会依次从栈中弹出,最终栈为空,返回 True ,此时所给的括号序列就符合规则

            若不互补,则直接结束循环,返回 False ,此时所给的括号序列就不符合规则,而因为直接结束循环而没有将此时栈顶元素弹出,所以导致栈不为空

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 13:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表