最长的括号子串

public int longestValidParentheses (String s) {
        // write code here

        int n=s.length();

        int max=0;

        int[] dp=new int[n];

        for (int i=1;i<n;i++){

            if(s.charAt(i)==')'){
                if(s.charAt(i-1)=='('){

                    dp[i]=(i>=2?dp[i-2]:0)+2;
                }else {
                    int j=i-dp[i-1]-1;
                    if(j>=0&&s.charAt(j)=='('){
                        dp[i]=dp[i-1]+(j>=1?dp[j-1]:0)+2;

                    }
                }
            }

            max=Math.max(max,dp[i]);

        }
        return max;
    }
全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务