给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
输入: "(()"
输出: 2
解释: 最长有效括号子串为 "()"
示例 2:
输入: ")()())"
输出: 4
解释: 最长有效括号子串为 "()()"
class Solution:
def longestValidParentheses(self, s: str) -> int:
stack = []
start = 0
maxlen = 0
for i in range(len(s)):
if s[i] == '(':
stack.append(i)
elif not stack:
start = i + 1
else:
temp = stack.pop()
if not stack:
maxlen = max(maxlen, i-start+1)
else:
maxlen = max(maxlen, i-stack[-1])
return maxlen