码迷,mamicode.com
首页 > 其他好文 > 详细

Levenshtein距离

时间:2021-01-22 12:03:07      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:之间   font   字符   size   abd   需要   规划   The   思路   

Levenshtein距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

求解Levenshtein距离可以依靠动态规划。例如将源字符串‘yabd‘转换成目标字符串‘abc‘,该问题的求解步骤可以用如下表格表述,例如其中(0)号格代表将‘yab‘与‘ab‘之间的距离,(0)号格可以通过(1)(2)(3)号格进行求解,思路如下。

‘‘ a b c
‘‘
y
a (3) (2)
b (1) (0)
d

通过(1)求解:(0) 代表 ‘yab‘->‘ab‘,(1) 代表 ‘yab‘->‘a‘,因此 (0) 比 (1) 多1步 (‘a‘->‘ab‘)
通过(2)求解:(0) 代表 ‘yab‘->‘ab‘,(2) 代表 ‘ya‘->‘ab‘,因此 (0) 比 (2) 多1步 (‘yab‘->‘ya‘)
通过(3)求解:(0) 代表 ‘yab‘->‘ab‘,(3) 代表 ‘ya‘->‘a‘,因此 (0) 比 (2) 多2步 (‘yab‘->‘ya‘,‘a‘->‘ab‘),但如果源字符串与目标字符串的最后一个字符相同(正如此例中的情况),则多出的2步是不需要的, (0) 与 (2) 的步数相等

Levenshtein距离

标签:之间   font   字符   size   abd   需要   规划   The   思路   

原文地址:https://www.cnblogs.com/bill-h/p/14308268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!