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