建议寻求基本的字符串差异算法

时间:2009-12-11 00:13:32

标签: string algorithm

我正在寻找一种算法,它将两个字符串,源和目标作为参数,并返回将源字符串转换为目标所需的步骤。让Levenshtein距离更远的东西。

如,

输入:源“abc”,dest“abbc”
输出:在源

中的位置1插入'b'

输入:源“abc”,dest“ac”
输出:删除源

中位置1的'b'

非常感谢。

4 个答案:

答案 0 :(得分:2)

只需使用wikipedia所示的算法,了解它并进行必要的修改。我确实解决了您的问题,您可能只是不知道它,并且没有记录您的答案。

答案 1 :(得分:1)

查看Wikipedia上的差异算法。

答案 2 :(得分:0)

您可以尝试首先完成并将所有字母成对排列。在尽可能多地配对后,插入和删除应该是显而易见的。

abcde
| /|
acbdd

所以你删除了b& e并添加一个b& d

记住线条不能交叉。

答案 3 :(得分:0)

我会尝试找到一种方法将它发送到现有的经过良好测试的diff实用程序并使用该diff的结果,例如diff -e或diff -n。