LCS问题得到两个字符串并返回其最长的公共子序列。
例如:
字符串上的LCS: elephant 和 eat 为3,因为整个字符串 eat 是 elephant中的子序列 - 指数0,6,7或2,6,7
另一个例子:
字符串上的LCS: elephant 和 olives 为2,因为它们最常见的子序列是 le
问题是,是否有一种算法不仅能够返回最优解,而且能够返回K个最佳解?
答案 0 :(得分:0)
有一种算法可以返回所有最佳解决方案(我想这就是你提出的问题)。
与Wikipedia中一样:
对两个字符串使用动态编程算法,构造表,然后递归地从末尾回溯到开头,增加的计算如果(i,j-1)或(i-1,j)中的任何一个可能是当前点之前的点,然后探索两条路径。这导致最坏情况下的指数计算。
在最坏的情况下,这些最佳序列可能存在一定数量的指数!