题目要求为输入一段文字,判断其中蕴含的括号是否配对
先给出输入公式时可行的解决方案,因为在公式中,如r=a(1-sin(θ)),括号不会交叉
aim=input('')
def check(string):
err=0
model=[]
for l in string:
if l=='[' or l=='{' or l=='(':
model.append(l)
if l==']' or l=='}' or l==')':
if len(model)==0:
err=1
break
if(l==']'and model[-1]=='[')or(l=='}'and model[-1]=='{')or(l==')'and model[-1]=='('):
model.pop()
else:
err=1
break
if err==1:
print('配对不成功')
elif err==0:
print('配对成功')
check(aim)
下面是一般情况的,因为初学不熟悉,用了三个列表,不甚繁琐,等学点新东西再进行改进。
aim=input('')
def check(string):
err=0
model1=[]
model2=[]
model3=[]
for l in string:
if l=='[' or l=='{' or l=='(':
if l=='{':
model1,append(l)
elif l=='[':
model2.append(l)
elif l=='(':
model3.append(l)
if l==']' or l=='}' or l==')':
if l=='}':
if len(model1)==0:
err=1
break
else:
model1.pop()
if l==']':
if len(model2)==0:
err=1
break
else:
model2.pop()
if l==')':
if len(model3)==0:
err=1
break
else:
model3.pop()
if len(model1)!=0 or len(model2)!=0 or len(model3)!=0:
err=1
if err==1:
print('配对不成功')
else:
print('配对成功')
check(aim)