zoukankan      html  css  js  c++  java
  • 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) 的步数相等

  • 相关阅读:
    02-scrapy安装及目录结构
    drf结合sql server搭建后台管理系统
    drf连接sqlserver数据库
    drf xadmin
    drf goods设计
    drf user models设计
    什么是全文检索
    周进度总结
    程序员修炼之道阅读笔记(四)
    周进度总结
  • 原文地址:https://www.cnblogs.com/bill-h/p/14308268.html
Copyright © 2011-2022 走看看