编辑距离()定义字符串的相似度
编辑距离就是用来计算从原串()转换到目标串所需要的最少的插入,删
除和替换的数目,在 中应用比较广泛,如一些评测方法中就用到了
( 等),同时也常用来计算你对原文本所作的改动数。编辑距离的
算法是首先由俄国科学家 提出的,故又叫
。
算法可以看作动态规划。它的思路就是从两个字符串
的左边开始比较记录已经比较过的子串相似度实际上叫做距离然后进一步得
到下一个字符位置时的相似度。 用下面的例子 和 。当算到
矩阵 !位置时也就是当比较到 和 时要从已经比较过的 对子
串 "" 和 " 之中选一个差别最小的来当它的值#所以要
从左上到右下构造矩阵。
编辑距离的伪算法:
整数 距离字符 $$##%&$!字符 '$##%&'!
((宣告 )##%&$)##%&'!
((宣告 *+
((对于 等于 由 )至 %&$
(((((()!,
((对于 *等于 由 )至 %&'
(((((()*!,*
((对于 等于 由 $至 %&$
((((((对于 *等于 由 $至 %&'
((((((((((若 $!,'*!则 +,)
(((((((((((((((((((((((((((((((否则 +,$
((((((((((*!,最小值
((((((((((((((((((((((((((((((("$*!-$((((..删除
(((((((((((((((((((((((((((((((*"$!-$((((..插入
((((((((((((((((((((((((((((((("$*"$!-+((..替换
(((((((((((((((((((((((((((
返回 %&$%&'!
* 实现如下:
/01%%2
/01%+&3!32
((&3+$,445
((&3+',445
((,3++$+'5
((&6#+0#/%5
7
评论0