题解 | #最长的括号子串#

最长的括号子串

http://www.nowcoder.com/practice/45fd68024a4c4e97a8d6c45fc61dc6ad

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return int整型
#
class Solution:
    def longestValidParentheses(self , s: str) -> int:
        # write code here
        flag=[0]*len(s)
        stack=[]
        for i in range(len(s)):
            # 直到遇到第一个有效的左括号
            if not stack and s[i]==')':
                continue
            # 存左括号的下标
            if s[i]=='(':
                stack.append(i)
            else:
            # 遇到右括号就弹出一个左括号
            # 把flag数组里的弹出左括号的位置和进来的右括号的位置变成1
                j=stack.pop()
                flag[i]=1
                flag[j]=1
        res=0  
        temp=0
        # 计算flag里的连续1的个数
        for i in flag:
            if i==1:
                temp+=1
                res=max(res,temp)
            else:
                temp=0
        return res
                
        
                
全部评论

相关推荐

就用这个吧:支持多益再加一个空气使用费
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务