Const
function longestValidParentheses(s: string): number {
let ans = 0;
const stack: number[] = [];
for (let i = 0; i < s.length; i++) {
if (s.charAt(i) === '(') {
stack.push(i);
}
else {
if (stack.length > 0 && s.charAt(stack[stack.length - 1]) === '(') {
stack.pop();
if (stack.length > 0) {
ans = Math.max(ans, i - stack[stack.length - 1]);
}
else {
ans = Math.max(ans, i + 1);
}
}
else {
stack.push(i);
}
}
}
return ans;
};
32.最长有效括号
给你一个只包含
'('
和')'
的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:
输入:
s = "(()"
输出:
2
解释: 最长有效括号子串是 "()" ,长度为 2。
示例 2:
输入:
s = ")()())"
输出:
4
解释: 最长有效括号子串是 "()()" ,长度为 4。
示例 3:
输入:
s = ""
输出:
0
提示
0 <= s.length <= 3 * 10^4
s[i]
为'('
或')'