使用 Levenshtein 计算编辑距离

Calculate Editing Distance with Levenshtein

问题:
我已经编写了一个 Levenshtein 字符串编辑程序,它对我来说似乎工作正常,但显然会产生错误的答案。我想我误解了编辑距离的计算方式。

比较
对于字符串 supercaantigravitational,这是最后两行的比较

我的:

    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

在我的计算中,你可以看到因为antigravitational中的最后一个"a"与superca[=42中的"a"匹配=] 所以我给它的值是 13,因为直接左边的数字是 13。因此,成本是 0。

在其他计算中,人们似乎仍在这些情况下增加成本。正如您在另一个示例中看到的那样,他们在我放置 13 的位置放置了 14,导致最终编辑距离为 15(与我的 14 相反)。

我是对的而其他人都错了(不太可能),还是我错过了一步?

我在几个 YouTube 视频后找到了自己的答案。

我的错误
我的说明指出“如果您要比较的字母匹配,则将成本设置为 0 并复制最小值(左、对角线、上方)。如果它们不匹配,则加 1。

更正
所以说明有点不准确。在字母匹配的情况下,无论左边的值和上面的值是多少,您都应该始终免费复制对角线。