/*开一个栈,用来存储'('的下标。每一个')'会匹配一个'('。
参考自:https://github.com/soulmachine/leetcode*/
class Solution {
public:
int longestValidParentheses(string s) {
if(s.empty()) return 0;
stack<int> left_idx;
int last(-1), res(0);
for(int i = 0; i < s.size(); ++i){
if(s[i] == '(') left_idx.push(i);
else{
if(left_idx.empty()) last = i;
else{
left_idx.pop();
if(left_idx.empty()) res = max(res, i-last);
else res = max(res, i-left_idx.top());
}
}
}
return res;
}
};
07-13
07-13