题解 | #最长公共子序列(二)#

最长公共子序列(二)

http://www.nowcoder.com/practice/6d29638c85bb4ffd80c020fe244baf11

 public static String LCS (String s1, String s2) {
        String[][] dp = new String[s1.length()+1][s2.length()+1];
        for (int i1 = 0; i1 < dp.length; i1++) {
            for (int i2 = 0; i2 < dp[i1].length; i2++) {
                if(i1==0 || i2==0){
                    dp[i1][i2] = "";
                }else if(s1.charAt(i1-1)==s2.charAt(i2-1)){
                    dp[i1][i2] = dp[i1-1][i2-1] + s1.charAt(i1-1);
                }else if(s1.charAt(i1-1)!=s2.charAt(i2-1)){
                    String l1 = dp[i1-1][i2];
                    String l2 = dp[i1][i2-1];
                    dp[i1][i2] = l1.length()>l2.length()?l1:l2;
                }
            }
        }
        String result = dp[s1.length()][s2.length()];
        return result.length()>0?result:"-1";
 }
全部评论

相关推荐

04-29 00:12
小米_人力资源
牛客448863700号:也得看岗位呀,我还拿下美团呢,不说了送单了
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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