最长的公共子序列算法

浦那

在最长公共子序列(LCS)问题中,为什么我们匹配字符串的最后一个字符。例如,请考虑输入字符串“AGGTAB”“AXTXAYB”最后一个字符与字符串匹配。因此,LCS的长度可以写成:

L(“AGGTAB”, “AXTXAYB”) = 1 + L(“AGGTA”, “AXTXAY”)

如果我们将字符串的第一个字符匹配,算法是否仍不会产生最佳搜索。例如

考虑输入字符串“AGGTAB”“AXTXAYB”首字符匹配字符串。因此,LCS的长度可以写成:

L(“AGGTAB”, “AXTXAYB”) = 1 + L(“GGTAB”, “XTXAYB”)

LCS问题:最长公共子序列问题

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

是的,这是同一回事。

计算两个反向序列的LCS与反向之前反转两个序列的LCS相同。换一种说法,

REVERSE(LCS(A,B)) = LCS(REVERSE(A), REVERSE(B))

假设LCS从头开始减少,则右侧的操作将从另一头开始,但达到相同的结果。

这就是为什么您可以按与解释中的后缀相同的方式使用前缀的原因:在过程中您将获得相同的递归减少。

此外,如果需要,您可以减少两端的损耗。但是,这会使算法复杂得多,而不会给您带来任何加速的回报。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

最长的公共子序列算法

来自分类Dev

最长公共子序列算法说明

来自分类Dev

最长公共子序列(LCS)蛮力算法

来自分类Dev

最长公共子序列(LCS)蛮力算法

来自分类Dev

Java:最长的公共子序列

来自分类Dev

算法 - 最长的摆动子序列

来自分类Dev

尤金·迈尔斯(Eugene Myers)的Diff算法:找到“ A”和“ B”的最长公共子序列

来自分类Dev

了解最长公共子序列算法的时间复杂度

来自分类Dev

有人可以解释这种“最长公共子序列”算法吗?

来自分类Dev

最长的公共子序列-优化内存

来自分类Dev

在ERLANG中获得最长的公共子序列

来自分类Dev

如何打印最长的公共子序列?

来自分类Dev

最长公共子序列的界限

来自分类Dev

最长的公共子序列已优化

来自分类Dev

openMP的最长公共子序列

来自分类Dev

最长的公共子序列-优化内存

来自分类Dev

三个整数序列的最长公共子序列

来自分类Dev

固定长度子串的最长公共子序列

来自分类Dev

固定长度子串的最长公共子序列

来自分类Dev

Python:列表的最长公共子序列的长度

来自分类Dev

查找列表中最长的公共子序列的功能?

来自分类Dev

Scheme中的LCS(最长公共子序列)

来自分类Dev

最长公共子序列矩阵差分python

来自分类Dev

最长的公共子串

来自分类Dev

c中3+个序列的最长公共子序列

来自分类Dev

c中3+个序列的最长公共子序列

来自分类Dev

N 个序列的最长公共子序列(用于 diff 目的)

来自分类Dev

改进最长递增序列算法

来自分类Dev

最长单调子序列算法NOT最长增长算法