import random
def check(lis):
temp=[]
qualified={
}
#创建空字典用于存储判断结果
open="{[("
close=")]}"
open_close_dict={
"}":"{","]":"[",")":"("}
#创建左右括号匹配字典
for i in lis:
j=0
flag=True #初始化flag为True
while j<len(i):
if i[j] in open:
temp.append(i[j])
j+=1
elif i[j] in close:
if len(temp)==0:
#如果存储的左括号数量为0,也就是没有对应的左括号与之匹配则匹配不成功
flag=False
break
compare=temp[-1]
#查看最后一个被存入列表的左括号
if open_close_dict[i[j]]!=compare:
#如果右括号与列表中存储的最后一个左括号不匹配则匹配不成功
flag=False
break
elif open_close_dict[i[j]]==compare:
#如果右括号与列表中存储的最后一个左括号匹配则弹出左括号
temp.pop()
j+=1
if len(temp)!=0:
#如果匹配循环结束,还有多余的左括号则匹配不成功
flag=False
qualified[i]=flag
#将匹配结果存入字典
temp=[]
#将temp置空开始下一个字符串的匹配
print(qualified)
l=["](([]))()[][","(([]))()[]","()[]{}(())""((()))",")(()()())((()))","(([]))()[]","(([}]))({})[]","(([{}]))({})[]",")(([{}]))"]
check(l)