收纳空白1321 发表于 2022-4-13 09:20:46

020 讲 对着答案抄 发现运行出现错误 求助大佬

本帖最后由 收纳空白1321 于 2022-4-13 14:34 编辑

我测试了一下这个 括号组{()()()[][()()]()}和这个{()[()()]}
我想着答案是 合法的啊
但是我又没有找到问题在哪里





下面是我刚刚改的但是还是运行出现问题我现在就是 发现好像是 d 的取值 没有取好然后一下没有思路求助大佬
s = []
s = input("请输入测试字符: ")
n = len(s)
if n % 2 != 0:
    print("非法T_T")
   
stack = []

for c in s:
    if c == '(' or c == '[' or c =='{':
      stack.append(c)
      
    else:
      if len(stack) == 0:
            print("非法T_T")
            break
      
      d = stack.pop()
      if c == ')':
            d = '('
      elif c == ']':
            d = '['
      elif c == '}':
            d = '{'

      if d != stack.pop():
            print("非法T_T")
            break
else:
    if len(stack) == 0:
      print("合法^_^")
    else:
      print("非法T_T")

isdkz 发表于 2022-4-13 09:26:41

s = input("请输入测试字符: ")

stack = []
d = 0

for c in s:
    if c == '(' or c == '[' or c =='{':
      stack.append(c)
    else:
      if len(stack) == 0:
            print("非法T_T")
            break
      if c == ')':
            d = '('
      elif c == ']':
            d = '['
      elif c == '}':
            d = '{'

      if d != stack.pop():         # 这里要缩进
            print("非法T_T")         # 这里要缩进
            break                           # 这里要缩进
else:
    if len(stack) == 0:
      print("合法^_^")
    else:
      print("非法T_T")

收纳空白1321 发表于 2022-4-13 09:27:31

是d 的取值是 stack中取值对吧d = stack.pop() 这样对吧

收纳空白1321 发表于 2022-4-13 09:34:34

isdkz 发表于 2022-4-13 09:26


我这边还是错了

isdkz 发表于 2022-4-13 10:14:03

收纳空白1321 发表于 2022-4-13 09:34
我这边还是错了

你这个不是之前的截图吗?

收纳空白1321 发表于 2022-4-13 10:41:04

isdkz 发表于 2022-4-13 10:14
你这个不是之前的截图吗?

不是哦
发觉我这边网络有延迟 总是要等到过个一段时间才能看到回复

ll147963 发表于 2022-4-13 14:07:25

问题出在
stack.append(c)
d = stack.pop()
这两行代码

ll147963 发表于 2022-4-13 14:12:08

没次循环都会将stack清空,所以在第三次循环时,当c=)时len(stack)为0,就直接输出不合法了

收纳空白1321 发表于 2022-4-13 14:44:31

ll147963 发表于 2022-4-13 14:07
问题出在
stack.append(c)
d = stack.pop()


仔细一看 我发觉就是d 的赋值有问题 是重新赋值了

isdkz 发表于 2022-4-13 15:29:44

收纳空白1321 发表于 2022-4-13 14:44
仔细一看 我发觉就是d 的赋值有问题 是重新赋值了

我给你发的那个没有那一句赋值呀

收纳空白1321 发表于 2022-4-13 22:35:14

isdkz 发表于 2022-4-13 15:29
我给你发的那个没有那一句赋值呀

我试过了 没有还是打印出 非法{:5_104:}

isdkz 发表于 2022-4-13 22:38:22

收纳空白1321 发表于 2022-4-13 22:35
我试过了 没有还是打印出 非法

不会吧,我这里测试是没有问题的

收纳空白1321 发表于 2022-4-13 22:40:38

本帖最后由 收纳空白1321 于 2022-4-13 22:48 编辑

isdkz 发表于 2022-4-13 22:38
不会吧,我这里测试是没有问题的

我这边试一下 再发图稍等

收纳空白1321 发表于 2022-4-13 22:50:06

isdkz 发表于 2022-4-13 09:26


只有这么多了

isdkz 发表于 2022-4-13 22:54:25

收纳空白1321 发表于 2022-4-13 22:50
只有这么多了

谢谢谢谢{:5_109:}

收纳空白1321 发表于 2022-4-13 23:04:31

isdkz 发表于 2022-4-13 22:54
谢谢谢谢

感谢大佬的帮助{:5_111:}
页: [1]
查看完整版本: 020 讲 对着答案抄 发现运行出现错误 求助大佬