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")
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") 是d 的取值是 stack中取值对吧d = stack.pop() 这样对吧 isdkz 发表于 2022-4-13 09:26
我这边还是错了 收纳空白1321 发表于 2022-4-13 09:34
我这边还是错了
你这个不是之前的截图吗? isdkz 发表于 2022-4-13 10:14
你这个不是之前的截图吗?
不是哦
发觉我这边网络有延迟 总是要等到过个一段时间才能看到回复 问题出在
stack.append(c)
d = stack.pop()
这两行代码 没次循环都会将stack清空,所以在第三次循环时,当c=)时len(stack)为0,就直接输出不合法了
ll147963 发表于 2022-4-13 14:07
问题出在
stack.append(c)
d = stack.pop()
仔细一看 我发觉就是d 的赋值有问题 是重新赋值了
收纳空白1321 发表于 2022-4-13 14:44
仔细一看 我发觉就是d 的赋值有问题 是重新赋值了
我给你发的那个没有那一句赋值呀 isdkz 发表于 2022-4-13 15:29
我给你发的那个没有那一句赋值呀
我试过了 没有还是打印出 非法{:5_104:} 收纳空白1321 发表于 2022-4-13 22:35
我试过了 没有还是打印出 非法
不会吧,我这里测试是没有问题的 本帖最后由 收纳空白1321 于 2022-4-13 22:48 编辑
isdkz 发表于 2022-4-13 22:38
不会吧,我这里测试是没有问题的
我这边试一下 再发图稍等 isdkz 发表于 2022-4-13 09:26
只有这么多了 收纳空白1321 发表于 2022-4-13 22:50
只有这么多了
谢谢谢谢{:5_109:} isdkz 发表于 2022-4-13 22:54
谢谢谢谢
感谢大佬的帮助{:5_111:}
页:
[1]