题解 | #合法的括号字符串#

合法的括号字符串

https://www.nowcoder.com/practice/eceb50e041ec40bd93240b8b3b62d221

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return bool布尔型
#可用贪心算法或者二重栈来解,方法一:贪心
import math
class Solution:
    def isValidString(self , s: str) -> bool:
        # write code here
        if len(s)==0:
            return True
        else:
            lmax=0#待消除左括号最大数量,表示算上*之后的待消除
            lmin=0#待消除左括号最小数量,不算*之后的待消除
            #由定义可知因为*可以表示空格,所以lmin=0时一定为真合法
           
            for i in s:
                if i=='(':
                    lmax+=1
                    lmin+=1                   
                elif i==')' :
                    if lmin>0:
                        lmin-=1
                    if lmax==0:#出现右未出现左,可直接判断为false
                        return False
                    lmax-=1    
                elif i=='*':
                    lmax+=1
                    if lmin>0:
                        lmin-=1
            return lmin==0

           

                    
            
        

全部评论

相关推荐

明天不下雨了:这个项目 这个简历 这个模板 莫不是一个开源的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务