• Levenshtein距离


    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) 比 (3) 多2步 ('yab'->'ya','a'->'ab'),但如果源字符串与目标字符串的最后一个字符相同(正如此例中的情况),则多出的2步是不需要的,此时 (0) 与 (3) 的步数相等

  • 相关阅读:
    语义web相关概念
    python统计代码行数
    python编程常见小技巧
    windows10 搜索桌面搜索功能失效的解决
    python批量修改文件名称
    Python面向对象编程高级特性
    Python面向对象的编程注意细节
    python基础语法学习常见小问题
    备忘录模式
    适配器模式
  • 原文地址:https://www.cnblogs.com/bill-h/p/14308268.html
Copyright © 2020-2023  润新知