困难
相关标签
相关企业
给你一个只包含 '('
和 ')'
的字符串,找出最长有效(格式正确且连续)括号
子串
的长度。
示例 1:
输入:s = "(()"
输出:2
解释:最长有效括号子串是 "()"
示例 2:
输入:s = ")()())"
输出:4
解释:最长有效括号子串是 "()()"
示例 3:
输入:s = ""
输出:0
提示:
0 <= s.length <= 3 * 104
s[i]
为'('
或')'
cpp
class Solution {
public:
int longestValidParentheses(string s) {
stack<char> str;
int max_len = 0;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '(') {
if (str.size() > 0 && str.top() == '(') {
continue;
}
str.push(s[i]);
} else if (str.size() > 0) {
char val = str.top();
if (val == '(') {
str.push(s[i]);
max_len = std::max(max_len, (int)str.size());
}
}
}
return max_len;
}
};