码迷,mamicode.com
首页 > 其他好文 > 详细

最长公共子串

时间:2020-10-08 18:32:02      阅读:18      评论:0      收藏:0      [点我收藏+]

标签:html   mamicode   bsp   ati   思路   字符串   substr   png   param   

 

技术图片

思路参考:最长公共子序列

public class Solution {
    /**
     * longest common substring
     * @param str1 string字符串 the string
     * @param str2 string字符串 the string
     * @return string字符串
     */
    public static String LCS(String str1, String str2) {
        if (str1 == null || str2 == null || str1.equals("") || str2.equals("")) {
            return "";
        }
        str1 = " " + str1;
        str2 = " " + str2;
        char[] chars1 = str1.toCharArray();
        char[] chars2 = str2.toCharArray();
        int maxlen = 0;
        int maxi=0;
        int[][] dp = new int[str1.length()][str2.length()];

        for (int i = 1; i < str1.length(); i++) {
            for (int j = 1; j < str2.length(); j++) {
                if (chars1[i] == chars2[j]) {
                    if (chars1[i - 1] != chars2[j - 1]) {
                        dp[i][j] = 1;
                    } else {
                        dp[i][j] = dp[i - 1][j - 1] + 1;
                    }
                } else {
                    dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);
                }
                if (maxlen<dp[i][j]){
                    maxlen = dp[i][j];
                    maxi = i;
                }
            }
        }
        if (maxlen == 0){
            return "-1";
        }
        return str1.substring(maxi-maxlen+1,maxi+1);
    }
}

 

最长公共子串

标签:html   mamicode   bsp   ati   思路   字符串   substr   png   param   

原文地址:https://www.cnblogs.com/Adam-Ye/p/13778662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!