题解 | #公共子串计算#方法二:动态规划

公共子串计算

http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b

def fun(str1, str2):

m = [[0 for i in range(len(str2) + 1)] for j in range(len(str1) + 1)]
max_sub_len = 0

for i in range(len(str1)):
    for j in range(len(str2)):
        if str1[i] == str2[j]:
            m[i+1][j+1] = m[i][j] + 1
            if m[i+1][j+1] > max_sub_len:
                max_sub_len = m[i+1][j+1]
return max_sub_len

while True:

try:
    str1, str2 = input(), input()
    print(fun(str1, str2))
except:
    break
全部评论

相关推荐

评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务