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)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值