题目:给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
输入: "(()"
输出: 2
解释: 最长有效括号子串为 "()"
示例 2:
输入: ")()())"
输出: 4
解释: 最长有效括号子串为 "()()"
class Solution:
def longestValidParentheses(self, s: str) -> int:
st, b = [], [0]*len(s)
for i, val in enumerate(s):
if val == '(':
st.append(i)
elif st:
b[st.pop()], b[i] = 1, 1
c, mc = 0, 0
for i in b:
if i:
c += 1
else:
mc = max(c, mc)
c = 0
return max(c, mc)