美文网首页Python全栈工程师
19.2-求最大公共子串

19.2-求最大公共子串

作者: BeautifulSoulpy | 来源:发表于2019-09-21 10:34 被阅读0次
练习1:求2个字符串的最长公共子串;
解法1:矩阵思路
def findint(str1,str2):
    length1 = len(str1)
    length2 = len(str2)
    matrix = [[0]*length1 for i in range(length2)]

    xmax = 0
    xindex = 0
    for i, x in enumerate(str2):
        for j, y in enumerate(str1):
            if x != y:
                pass
            else:
                if i == 0 or j == 0:
                    matrix[i][j] = 1
                else:
                    matrix[i][j] = matrix[i-1][j-1] + 1
                    
                if matrix[i][j] > xmax:
                    xmax = matrix[i][j]
                    xindex = j
                    
    strat = xindex + 1 - xmax
    end = xindex + 1
    print(matrix,xmax,xindex,strat,end)
    return str1[start:end]

s1 = 'abcdefg'
s2 = 'defabcd'


相关文章

网友评论

    本文标题:19.2-求最大公共子串

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