最小编辑距离(Edit Distance)

2021-03-27  本文已影响0人  小幸运Q

编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括:

(1)任意位置插入一个字符
(2)任意位置删除一个字符
(3)任意未知修改一个字符

将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。


思路:

(1)当其中某个字符串长度为0的时候,编辑距离就是另一个字符串的长度。(我们可以理解为,对长度为0的字符串一直插入字符变成另一个字符串)

dp表 - failing - sailn

(2)当字符串不等的时候, 我们发现从后往前可以简化步骤。

(3)求状态转移方程:

那么此时动态转移方程为:

   f(i,j) = max(i,j)  
   // if i与j其中一个为0<br>
   f(i,j) = f(i-1,j-1) 
   // if a[i]=a[j]
   f(i,j) = min (f(i-1,j-1) + 1,
                f(i, j-1) + 1,
                f(i-1, j) + 1);
上一篇 下一篇

猜你喜欢

热点阅读