动态规划解法,十分简洁,len[i]定义为以下标i结尾的之前的字符串所能组成的最大有效括号
class Solution
{
public:
int longextValidParentheses(string s)
{
int result=0;
vector<int> dp(s.length(),0);
for(int i=1;i<s.length();i++)
{
if(s[i]==')')
{
if(s[i-1-dp[i-1]]=='(')
{
dp[i]=dp[i-1]+2;
dp[i]+=dp[i-dp[i]];
}
}
result=max(result,dp[i]);
}
return result;
}
};