lintcode_79最长公共字串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lintcode_79最长公共字串相关的知识,希望对你有一定的参考价值。

给出两个字符串,找到最长公共子串,并返回其长度。

样例

给出A=“ABCD”,B=“CBCE”,返回 2

 

class Solution:
    """
    @param: A: A string
    @param: B: A string
    @return: the length of the longest common substring.
    """
    def longestCommonSubstring(self, A, B):
        # write your code here
        if not A:
            return 0
        result = -1
        for i in range(len(B)):
            for j in range(i,len(B)+1):
                result = max(j-i,result) if A.find(B[i:j])!=-1 else result
        return result

利用find方法滑窗式搜索,注意B[i:j] 实际为左闭右开区间,因此B的范围为range[i,len(B)+1]

以上是关于lintcode_79最长公共字串的主要内容,如果未能解决你的问题,请参考以下文章

lintcode_78最长公共前缀

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

最长递归子序列最长公共字串最长公共子序列编辑距离

python 最先出现的最长公共字串

最长公共子串_暴力解法(不会正解)

79.最长公共子串