刚看此题觉得比较简单,利用栈来记录,但是其中的的细节很多,需要对")"以及栈是否为空进行考虑
代码
class Solution {
public:
int longestValidParentheses(string s) {
int lgest = 0;
int len = s.length();
int start = 0;
if(len==0)
return lgest;
stack<int> pare;
for(int i = 0; i < len; ++i)
{
if(s[i]=='(')
pare.push(i);
else
{
if(pare.empty())
{
start = i + 1;
}
else
{
pare.pop();
lgest = pare.empty()? max(lgest, i - start + 1):max(lgest, i - pare.top());
}
}
}
return lgest;
}
};
本文介绍了一种使用栈解决最长有效括号问题的方法。通过遍历字符串并利用栈记录左括号的位置,当遇到右括号时,判断栈是否为空来进行相应的处理。最终找到最长的有效括号长度。
395

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



