求助
请问大佬们,20讲的动动手这一题,当右括号比左括号多时,此时stack列表为空,stack.pop().语句不是会出错吗?为什么还能继续运行下去呢?
你好,请问你遇到了什么问题?我很乐意帮助你。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 当 stack 长度为 0 时, 已经在上面的
if len(stack) == 0:
这里判断过了, 如果这时等于 0 会直接跳出循环
所以下面可以放心使用 pop() 柿子饼同学 发表于 2024-9-24 21:52
当 stack 长度为 0 时, 已经在上面的
if len(stack) == 0:
这里判断过了, 如果这时等于 0 会直接跳出循环 ...
醍醐灌顶,谢谢大佬。那if d == stack.pop()呢?为啥没有这句,是自动开启下轮循环吗? 本帖最后由 柿子饼同学 于 2024-9-25 12:30 编辑
yykxxg 发表于 2024-9-24 22:03
醍醐灌顶,谢谢大佬。那if d == stack.pop()呢?为啥没有这句,是自动开启下轮循环吗?
pop() 执行了两个操作: 把栈顶元素弹出, 并且返回这个元素
这里只需要判断不等于的情况, 如果等于, if 中的值是假就不会跳出循环, 会继续 (if 这个语句的时候不管是否相等, 都已经把栈顶弹出了, 如果再有判断相等就相当于多弹出了一次) 柿子饼同学 发表于 2024-9-25 12:29
pop() 执行了两个操作: 把栈顶元素弹出, 并且返回这个元素
这里只需要判断不等于的情况, 如果等于, if ...
好的好的谢谢大佬
页:
[1]