[LeetCode]32. Longest Valid Parentheses
题目描述
思路
开始:将’(‘压栈,当有’)’时, 出栈,结果+1
问题:统计的是所有合法的情况,不是最长合法的情况
修正:将对应的索引压栈,满足条件时,出栈,当前索引减去栈顶索引,栈初始化时先将-1压栈
代码
class Solution {
public:
int longestValidParentheses(string s) {
int res = 0;
stack<int> index;
index.push(-1);
for (int i = 0; i < s.size(); ++i) {
if (index.top() != -1 && s[index.top()] == '(' && s[i] == ')'){
index.pop();
res = res > i - index.top() ? res : i - index.top();
}
else {
index.push(i);
}
}
return res;
}
};
本文详细解析了LeetCode上第32题“最长有效括号”的解决方案,采用栈来记录括号的索引,通过索引之间的差值计算最长的有效括号长度。
1190

被折叠的 条评论
为什么被折叠?



