题解 | #最长公共子序列(一)#

最长公共子序列(一)

https://www.nowcoder.com/practice/672ab5e541c64e4b9d11f66011059498

import sys

m,n = map(int,input().split())
str1 = input()
str2 = input()


dp = [[0 for _ in range(n+1)] for _ in range(m+1)]


for i in range(1,m+1):
    for j in range(1,n+1):
        if str1[i-1]==str2[j-1]:
            dp[i][j] = 1+dp[i-1][j-1]
        else:
            dp[i][j]=max(dp[i-1][j],dp[i][j-1])

print(dp[-1][-1])

重点是:要在处理表格的第一行和第一列

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务