class Solution {
public:
int longestValidParentheses(string s) {
s=" "+s;
vector<int>dp(s.length()+10,0);
int res=0;
for(int i=2;i<s.length();i++)
{
if(s[i-1]=='('&&s[i]==')')dp[i]=dp[i-2]+2;
else if(s[i-1-dp[i-1]]=='('&&s[i]==')')dp[i]=dp[i-1]+2+dp[i-2-dp[i-1]];
res=max(res,dp[i]);
}
return res;
}
};

京公网安备 11010502036488号