每日一题力扣32

给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

class Solution:
    def longestValidParentheses(self, s: str) -> int:
        ans=0       # 最大合法长度(返回值)
        stack=[-1,]  # stack[0]:合法括号起点-1 ; stack[1:]尚未匹配左括号下标
        for i,ch in enumerate(s):
            if '('==ch:  # 左括号
                stack.append(i)
            elif len(stack)>1:  # 右括号,且有成对左括号
                stack.pop()     # 成对匹配
                ans = max(ans, i - stack[-1])
            else:   # 非法的右括号
                stack[0]=i
        return ans
原文地址:https://www.cnblogs.com/liuxiangyan/p/14549723.html