https://leetcode-cn.com/problems/longest-valid-parentheses/submissions/
分析
这道题和上一道最长回文子串有类似之处,不同的是这道可以用一维dp来写,因为只有两个字符,匹配的情况固定;注意(……)(……)的情况。
class Solution {
public:
int f[30010]={0};
int longestValidParentheses(string s) {
int ls=s.length(),maxn=0;
for(int i=1;i<ls;i++)
{
if(s[i]==‘)‘)
{
if(i-1-f[i-1]>=0&&s[i-1-f[i-1]]==‘(‘)
{
f[i]=f[i-1]+2;
if(i-2-f[i-1]>=0)f[i]+=f[i-2-f[i-1]];
}
}
if(f[i]>maxn)maxn=f[i];
}
return maxn;
}
};