判断一个字符串的括号自否闭合(包括大小中括号)
左括号和右括号必须是一一对应
比如:{{()}} 就是一个闭合的字符串
{{()}]} 这个里面 ([)] 这种就是不闭合
def is_str_close(a):
list1 = []
flag = True
for i in a:
if i == "{" or i == "[" or i == "(":
list1.append(i)
elif i == "}":
if len(list1) == 0 or list1.pop() != "{":
return False
elif i == "]":
if len(list1) == 0 or list1.pop() != "[":
return False
elif i == ")":
if len(list1) == 0 or list1.pop() != "(":
return False
if len(list1) != 0:
flag = False
return flag
a = "{[{()}]()}"
print(is_str_close(a))
b = "{[{()}]([)]}"
print(is_str_close(b))
测试结果:
思路见图: