地址:https://leetcode-cn.com/problems/longest-valid-parentheses/
思路:利用栈记录入栈字符的下标位置,从头处理字符串,对于s[i],若栈头元素与其匹配,则将其从退栈,并求其长度并保存最大长度,若不匹配则入栈。
Code:
class Solution{
public:
int longestValidParentheses(string s){
stack<int> sta;
int res=0;
for(int i=0;i<s.size();++i)
{
if(!sta.empty()&&s[sta.top()]=='('&&s[i]==')'){
sta.pop();
if(sta.empty()) res=i+1;
else res=max(res,i-sta.top());
}else sta.push(i);
}
return res;
}
};