class Solution {
public:
/**
*
* @param s string字符串
* @return int整型
*/
int longestValidParentheses(string s) {
// write code here
stack<int> st;
st.push(-1);
int res = 0, cur = 0;
while(cur < s.length()){
if(s[cur] == '('){
st.push(cur);
cur++;
}
else{
if(st.top() < 0 || s[st.top()] != '('){
st.push(cur);
cur++;
continue;
}
else{
st.pop();
res = max(res, cur-st.top());
cur++;
}
}
}
//res = max(res, cur-st.top()+1);
return res;
}
};