最长公共子序列(二)

   public String LCS (String s1, String s2) {
        // write code here
        int m=s1.length();
        int n=s2.length();
        String[][] dp=new String[m+1][n+1];

        for (int i=0;i<=m;i++){
            dp[i][0]="";
        }

        for (int i=0;i<=n;i++){
            dp[0][i]="";
        }

        for (int i=1;i<=m;i++){
            for (int j=1;j<=n;j++){
                if(s1.charAt(i-1)==s2.charAt(j-1)){
                    dp[i][j]=dp[i-1][j-1]+s1.charAt(i-1);
                }else {
                    dp[i][j]=dp[i-1][j].length()>dp[i][j-1].length()?dp[i-1][j]:dp[i][j-1];
                }
            }
        }

        return dp[m][n]==""?"-1":dp[m][n];

    }

全部评论

相关推荐

M_bao:换个排版吧哥们,看着费劲
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务