class Solution {
public:
int longestValidParentheses(string s) {
vector<int>dp(s.size(),0);
int maxn=0;
for(int i=1;i<s.size();i++)
{
if(s[i]==')')
if(s[i-1]=='(') dp[i]=i>=2?2+dp[i-2]:2;
else if(i-dp[i-1]-1>=0&&s[i-dp[i-1]-1]=='(')
dp[i]=(i-dp[i-1]-2>=0)?2+dp[i-1]+dp[i-dp[i-1]-2]:2+dp[i-1];
maxn=max(maxn,dp[i]);
}
return maxn;
}
};
最长有效括号
最新推荐文章于 2024-04-23 08:59:56 发布