美文网首页
最长公共字串和最长公共子序列

最长公共字串和最长公共子序列

作者: 第六象限 | 来源:发表于2018-08-20 11:31 被阅读0次

最长公共字串,字符必须连续

public static int lcs(String str1,String str2){
        int len1 = str1.length();
        int len2 = str2.length();
        int c[][] = new int[len1+1][len2+1];
        int res=0;
        for (int i = 1; i <= len1; i++) {
            for( int j = 1; j <= len2; j++) {
                if (str1.charAt(i-1) == str2.charAt(j-1)) {
                    c[i][j] = c[i-1][j-1] + 1;
                    res=max(res,c[i][j]);
                } else {
                    c[i][j] = 0;
                }
            }
        }
        return res;

    }

最长公共子序列,字符不需要连续

public static int lcs(String str1,String str2){
        int len1 = str1.length();
        int len2 = str2.length();
        int c[][] = new int[len1+1][len2+1];
        for (int i = 1; i <= len1; i++) {
            for( int j = 1; j <= len2; j++) {
                if (str1.charAt(i-1) == str2.charAt(j-1)) {
                    c[i][j] = c[i-1][j-1] + 1;
         
                } else {
                    c[i][j] = max(c[i-1][j],c[i][j-1]);
                }
            }
        }
        return c[len1][len2];

    }

相关文章

  • 最长公共字串和最长公共子序列

    最长公共字串,字符必须连续 最长公共子序列,字符不需要连续

  • 最长公共子序列和最长公共子串

    最长公共子序列和最长公共子串区别 最长公共子串(Longest CommonSubstring)和最长公共子序列(...

  • 公共子序列问题

    最长公共子序列 最长上升子序列 最长公共上升子序列

  • LCS问题

    LCS问题包括最长公共子序列和最长公共子串,其中,最长公共子串要求必须连续。 对于二者的求解方式 最长公共子序列:...

  • 最长递增子序列: 动态规划和LCS(最长公共子序列)

    最长递增子序列: 动态规划和LCS(最长公共子序列)子序列和子串的区别:子序列不连续,字串连续。这个题两种解法 动...

  • 算法(04)动态规划

    零钱问题 背包问题 最长公共子序列 最长公共子串 最长上升子序列 最大连续子序列和

  • 最长公共 / 对称字串

    求最长对称字串是求最长公共子串的变形.. (๑˘ ˘๑) 最长公共子串 Longest Common Subseq...

  • 每天一道算法题18

    【最长公共子序列,子串】给定两个字符串上str1 和 str2, 求两个字符的最长公共子序列和最长公共子串。 最长...

  • 算法问题清单

    最大子序列和最长公共子序列最长公共子串大整数相乘/除/加数组最大乘积

  • 子串 子序列 总结

    最长公共子串 子串的要求比子序列严格,所以可以讨论子串的终点 最长公共子序列 DP解 递归+memo 最长公共回文...

网友评论

      本文标题:最长公共字串和最长公共子序列

      本文链接:https://www.haomeiwen.com/subject/gjbkiftx.html