Python括号配对 水

题目要求为输入一段文字,判断其中蕴含的括号是否配对

先给出输入公式时可行的解决方案,因为在公式中,如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)


展开阅读全文

没有更多推荐了,返回首页