最长公共子串

原创
2023/12/21 11:46
阅读数 56

最长公共子序列中子序列是不连续的,最长公共字串则要求子串是连续的。两者是不同的问题。最长公共子序列前面已经说了,这里只讨论最长公共子串问题。

设有A和B两个序列。c(i,j)表示以A[i]和B[j]结尾的最长字串长度,也就是i,j处的靠右最长字串。那么A和B的最长字串就是所有n*m个c(i,j)中的最大值。 当A[i]!=B[j]时:c(i,j) = 0,当A[i]=B[j]时: c(i,j)=c(i-1,j-1)+1 (补充i==0,j==0时c(i,j)=1) 这也是个子问题重叠的动态规划。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部