正则问题蓝桥杯真题python解法

题目描述

解题思路 

先看懂题。

 该题利用dfs思想做,当出现“("就去找到")"才返回,设置一个temp临时记录当前x数,当出现|时就要清空temp,每当到‘)”时就要返回全局计数作为新的temp。依次寻找具体看代码注释

代码

    left=0
    n=input()
    def dfs():
        global left
        global n
        ans,temp=0,0#ans为全局计数,temp为局部计数
        while left<len(n):
            if n[left]=='(':
                left+=1
                temp+=dfs()#加上直到出现')'的局部x最大值
            elif n[left]=='x':
                left+=1
                temp+=1
            elif n[left]=='|':
                left+=1
                ans=max(ans,temp)#当出现了|就要更新ans
                temp=0#清空局部
            elif n[left]==')':
                left+=1
                ans=max(ans,temp)
                return ans#一个括号遍历结束返回ans作为temp
        ans=max(ans,temp)
        return ans
    print(dfs())

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值