问题:
我编写了一个Levenshtein字符串编辑程序,该程序似乎对我有效,但显然会产生错误的答案。我想我误解了如何计算编辑距离。
比较
对于字符串 superca 和 antigravitational ,这里是最后两行的比较
矿:
a n t i g r a v i t a t i o n a l
c 6 6 6 6 6 6 6 6 7 8 9 10 11 12 13 14 15 16
a 7 6 7 7 7 7 7 6 7 8 9 9 10 11 12 13 13 14
其他:
a n t i g r a v i t a t i o n a l
c 6 6 6 6 6 6 6 6 7 8 9 10 11 12 13 14 15 16
a 7 6 7 7 7 7 7 6 7 8 9 9 10 11 12 13 14 15
在我的计算中,你可以看到,因为最后一个" a"在 antigravitational 中匹配" a"在 superca 中,所以我给它的值为13,因为直接在左边的数字是13.因此,成本是0。
在其他计算中,似乎人们仍然在这些情况下增加成本。正如你在另一个例子中看到的那样,他们放置了一个14,我放置了13,导致最终的编辑距离为15(而不是我的14)。
我是对的,其他人都错了(不太可能),或者我错过了一步?
答案 0 :(得分:0)
我在几部YouTube视频后找到了自己的答案。
我的错误
我的指示说“如果您要比较的字母匹配,请将成本设置为0并复制最小值(左侧,对角线,上方)。如果它们不匹配,请添加1.
更正
因此说明略有不准确。在字母匹配的情况下,无论左边的值和上面的值是什么,都应该始终复制对角线,无论成本是多少。