【发布时间】:2021-10-06 16:03:24
【问题描述】:
如果没有嵌套则返回 0 嵌套返回 1
我不知道下面的代码有什么问题。即使对于不平衡的括号,它也会返回 1。
#from codility
def solution (S):
B =[]
if len(S) == 0:
return 1
for i in range (0,len(S)):
if S[i] == "(" or S[i] == "[" or S[i] == "{":
B.append(S[i])
else:
return 0
if (S[i] == ")" and B[-1]!= "(") :
return 0
if (S[i] == "}" and B[-1]!= "{") :
return 0
if (S[i] == "]" and B[-1]!= "[") :
return 0
else:
B.pop()
if len(B)==0:
return 1
【问题讨论】:
-
这段代码根本无法运行,
elif:是语法错误。 -
向您的编辑器添加一个静态 linter,例如 flake8 以捕获此类问题!
-
@mkrieger1 抱歉,应该是别的。
-
您的问题是什么?是检查嵌套括号还是不平衡括号?
-
平衡且不嵌套返回什么?
标签: python python-3.x stack