两个圆形列表之间的最小编辑距离?

时间:2013-01-14 01:23:13

标签: algorithm circular-list

给定两个循环列表,是否有一种有效的方法来计算两个列表之间的最佳对齐?例如,给定循环列表:

a b b c
b c a

最佳对齐

a b b c
a b _ c

因为此对齐具有最小的编辑距离(注意:此最佳对齐不是也不必是唯一的)。

执行此操作的一种方法是计算第一个列表与第二个列表的每个循环排列之间的编辑距离,将最小编辑距离作为最佳对齐。有没有更有效的方法呢?

1 个答案:

答案 0 :(得分:3)

假设S1 =“abbc”,S2 =“bca”

现在让S2'= strcat(S2,S2)=“bcabca”,然后计算S1和S2'之间的编辑距离,你会得到

--abbc-
bcab-ca

只是提示,应该考虑更多细节