问题是这样的,我们输入一组字符串,这些字符串是由小括号(,),中括号[,],大括号{,}组成。组合是任意的。诸如“([]) ",“[()]", "[[({}))]]”“{}(){}[]”等等被认为是正确的,而“[)","[){","()[}"等等则被认为是错误的。
总结起来也就是:
-
左括号必须用相同类型的右括号闭合。
-
左括号必须以正确的顺序闭合
代码实现:
def judge(s):
L=[]
index=0
Balance=True
openss="([{"
closess=")]}"
while index<len(s) and Balance:
closes=s[index]
if closes in "({[":
L.append(s[index])
else:
if len(L)==0:
Balance=False
else:
opens=L.pop()
Balance=openss.index(opens)==closess.index(closes)
index=index+1
if len(L)==0 and Balance:
return True
else:
return False
示例:
str1="([}"
print(judge(str1))
str2="([{}])"
print(judge(str2))
结果:
False
True