获取两个字符串中最长的相同子串

def getNumofCommonSubstr(str1, str2):
    lstr1 = len(str1)


    lstr2 = len(str2)
    record = [[0 for i in range(lstr2 + 1)] for j in range(lstr1 + 1)]
    print(record)
    # 多一位
    maxNum = 0
    #  最长匹配长度p = 0
    #  匹配的起始位
    for i in range(lstr1):
        for j in range(lstr2):
            print(record[i][j])
            if str1[i] == str2[j]:
                # 相同则累加
                record[i+1][j+1] = record[i][j] + 1
                if record[i+1][j+1] > maxNum:
                    # 获取最大匹配长度
                    maxNum = record[i+1][j+1]
                    # 记录最大匹配长度的终止位置
                    p = i + 1
    return str1[p-maxNum:p], maxNum

if __name__ == '__main__':
    str1 = raw_input()
    str2 = raw_input()
    res = getNumofCommonSubstr(str1, str2)
    print res

  

posted @ 2018-08-24 14:24  ruijing  阅读(294)  评论(0编辑  收藏  举报