Python括号配对 水

来源:互联网 发布:阿里云跟阿里巴巴关系 编辑:程序博客网 时间:2024/06/13 21:36

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

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


原创粉丝点击