这不合理 发表于 2023-1-1 17:13:51

第020讲:列表(Ⅱ)的动动手,自己做出来的,不知道有没有BUG

我自己思考出来的代码,跟小甲鱼的不一样,但是能按照预期运行,目前没发现什么 bug
但是心里没底,兄弟们,可以帮我测试一下有什么BUG吗。

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

stack = []
the = 0
for i in s:
    if i == "(" or i == "[" or i == "{":
      stack.append(i)
    else:
      temp = stack.pop()

      if temp == "(" and i == ")":
            the = 1
      elif temp == "[" and i == "]":
            the = 1
      elif temp == "{" and i == "}":
            the = 1
      else:
            the = 0

if the > 0:
    print("合法^o^")
else:
    print("非法T_T")

柿子饼同学 发表于 2023-1-1 17:24:54

本帖最后由 柿子饼同学 于 2023-1-1 18:04 编辑

有一点问题 , 比如下面这个会错 :
]]]]}}()
因为你下面判断的时候没有给列表判空 , 导致如果我第一个就是右括号 , 就会报错
然后比如这样的(]]
也会因为列表空报错
应该把下面判断是否配对改一下判断列表是否为空
时间上可以发现不对就直接跳出循环写出结果 , 这样省时间

这不合理 发表于 2023-1-2 18:24:18

柿子饼同学 发表于 2023-1-1 17:24
有一点问题 , 比如下面这个会错 :

因为你下面判断的时候没有给列表判空 , 导致如果我第一个就是右括号 , ...

十分感谢!
页: [1]
查看完整版本: 第020讲:列表(Ⅱ)的动动手,自己做出来的,不知道有没有BUG