【leetcode32】最长有效括号

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;
    }
};

【leetcode32】最长有效括号

上一篇:sdn第二次实验


下一篇:图像分块和还原