python----最长公共子串

解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况

def longgestStr(s1,s2):
    m=[[0 for i in range(len(s2)+1)] for j in range(len(s1)+1)]
    mmax=0 #最长匹配的长度
    p=0 #最长匹配对应在s1中的最后一位
    for i in range(len(s1)):
        for j in range(len(s2)):
            if s1[i]==s2[j]:
                m[i+1][j+1]=m[i][j]+1
                if m[i+1][j+1]>mmax:
                    mmax=m[i+1][j+1]
                    p=i+1
    return s1[p-mmax:p],mmax
print(longgestStr('abcdef','abcef'))


猜你喜欢

转载自blog.csdn.net/haoshan4783/article/details/88787893