美文网首页
求两个字符串最长公共子串长度

求两个字符串最长公共子串长度

作者: WhyDoWeLive | 来源:发表于2019-06-15 13:47 被阅读0次

注:子串可不连续,即abc和acd的最长子串长度为2: ac。原理可参考《算法导论》

# 表格驱动的动态规划
import numpy as np

def get_longest_substr_len(str1, str2):
    table = np.zeros((len(str1) + 1, len(str2) + 1))

    for i in range(1, len(table)):
        for j in range(1, len(table[0])):
            if str1[i - 1] == str2[j - 1]:
                table[i][j] = 1 + table[i - 1][j - 1]
            else:
                table[i][j] = max(table[i][j - 1], table[i - 1][j], table[i - 1][j - 1])

    return table[len(str1)][len(str2)]

相关文章

  • 两个字符串的最长公共子串的长度

    题目 两个字符串的最长公共子串的长度例如:“ABCDGH”和“AEDFHR”的最长公共子串为“ADH”,长度为3。...

  • poj 2774 二分+hash

    poj 2774求两个字符串的最长公共子串,可以二分长度,把A串中长度为mid的子串的hash值存入hash ta...

  • 每天一道算法题18

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

  • LCS 问题求解

    LCS : longest common substring 即最长公共子串 LCS 问题就是求两个字符串最长公共...

  • 最长公共子串

    问题: 找出最长、连续的子字符串 思路: 遍历X、Y的所有子字符串,找出最长公共后缀,则最长公共后缀的长度就是最长...

  • 2019-10-29

    求2个字符串的最长公共子序列和最长公共子字符串 一. 最长公共子序列 定义: 一个数列S,如果分别是两个或多个已知...

  • Java算法:求两个字符串的最长公共子序列问题

    最长公共子序列问题: 给定两个字符串A、B,求A与B的最长公共子序列(子序列不要求是连续的)举例:字符串A: ab...

  • lintcode 最长公共子序列

    给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。说明最长公共子序列的定义: 最长公共子序列问题是在...

  • Leetcode 1143 最长公共子序列

    最长公共子序列 题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字...

  • 动态规划:1143. 最长公共子序列(中等)

    给定两个字符串text1 和text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回...

网友评论

      本文标题:求两个字符串最长公共子串长度

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