我正在寻找一种算法,它将两个字符串,源和目标作为参数,并返回将源字符串转换为目标所需的步骤。让Levenshtein距离更远的东西。
如,
输入:源“abc”,dest“abbc”
输出:在源
输入:源“abc”,dest“ac”
输出:删除源
非常感谢。
答案 0 :(得分:2)
只需使用wikipedia所示的算法,了解它并进行必要的修改。我确实解决了您的问题,您可能只是不知道它,并且没有记录您的答案。
答案 1 :(得分:1)
查看Wikipedia上的差异算法。
答案 2 :(得分:0)
您可以尝试首先完成并将所有字母成对排列。在尽可能多地配对后,插入和删除应该是显而易见的。
abcde
| /|
acbdd
所以你删除了b& e并添加一个b& d
记住线条不能交叉。
答案 3 :(得分:0)
我会尝试找到一种方法将它发送到现有的经过良好测试的diff实用程序并使用该diff的结果,例如diff -e或diff -n。