鱼C论坛

 找回密码
 立即注册
查看: 461|回复: 5

[已解决]求助

[复制链接]
发表于 2024-9-24 21:47:32 | 显示全部楼层 |阅读模式

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

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

x
屏幕截图 2024-09-24 214354.png
请问大佬们,20讲的动动手这一题,当右括号比左括号多时,此时stack列表为空,stack.pop().语句不是会出错吗?为什么还能继续运行下去呢?
屏幕截图 2024-09-24 214713.png
最佳答案
2024-9-24 21:52:08
当 stack 长度为 0 时, 已经在上面的
if len(stack) == 0:
这里判断过了, 如果这时等于 0 会直接跳出循环
所以下面可以放心使用 pop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-9-24 21:47:39 | 显示全部楼层
你好,请问你遇到了什么问题?我很乐意帮助你。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-24 21:52:08 | 显示全部楼层    本楼为最佳答案   
当 stack 长度为 0 时, 已经在上面的
if len(stack) == 0:
这里判断过了, 如果这时等于 0 会直接跳出循环
所以下面可以放心使用 pop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-24 22:03:26 | 显示全部楼层
柿子饼同学 发表于 2024-9-24 21:52
当 stack 长度为 0 时, 已经在上面的
if len(stack) == 0:
这里判断过了, 如果这时等于 0 会直接跳出循环 ...

醍醐灌顶,谢谢大佬。那if d == stack.pop()呢?为啥没有这句,是自动开启下轮循环吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-25 12:29:41 | 显示全部楼层
本帖最后由 柿子饼同学 于 2024-9-25 12:30 编辑
yykxxg 发表于 2024-9-24 22:03
醍醐灌顶,谢谢大佬。那if d == stack.pop()呢?为啥没有这句,是自动开启下轮循环吗?


pop() 执行了两个操作: 把栈顶元素弹出, 并且返回这个元素
这里只需要判断不等于的情况, 如果等于, if 中的值是假就不会跳出循环, 会继续 (if 这个语句的时候不管是否相等, 都已经把栈顶弹出了, 如果再有判断相等就相当于多弹出了一次)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-25 14:21:48 | 显示全部楼层
柿子饼同学 发表于 2024-9-25 12:29
pop() 执行了两个操作: 把栈顶元素弹出, 并且返回这个元素
这里只需要判断不等于的情况, 如果等于, if ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-27 09:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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