给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
int longestValidParentheses(string s) {
int left=0,right=0;
int size=s.length();
int res1=0,res2=0;
for(int i=0;i<size;i++){
if(s[i]=='('){
left++;
}
else if(s[i]==')'){
right++;
}
if(right>left){
left =0;
right=0;
}
if(left==right){
res1=max(res1,2*left);
}
}
left=0;
right=0;
for(int i=size-1;i>=0;i--){
if(s[i]==')'){
right++;
}
if(s[i]=='('){
left++;
}
if(left>right){
left=0;right=0;
}
if(left==right){
res2=max(res2,2*left);
}
}
return max(res1,res2);
}