class Solution {
public:
int longestValidParentheses(string s) {
const int N=3e4+10;
int dp[N];
for(int i=0;i<s.size();i++)
{
dp[i]=0;
if(s[i]==')')
{
if(i-1>=0&&s[i-1]=='(')
{
dp[i]=2;
if(i-2>=0)
dp[i]=dp[i]+dp[i-2];
}
else if(i-1>=0&&s[i-1]==')')
{
if(dp[i-1]>0&&i-1-dp[i-1]>=0&&s[i-1-dp[i-1]]=='(')
{
dp[i]=dp[i-1]+2;
if(i-2-dp[i-1]>=0)
{
dp[i]+=dp[i-2-dp[i-1]];
}
}
}
}
//只有是')'的时候,才有可能
}
int maxv=0;
for(int i=0;i<s.size();i++)
maxv=max(maxv,dp[i]);
return maxv;
}
};
LeetCode 32
最新推荐文章于 2024-11-15 16:27:37 发布