跳到主要内容
uencoder

Levenshtein Distance

Levenshtein 距离是两字符串间通过插入、删除、替换单字符操作转为相同所需的最少操作数。

用途

度量字符串间编辑差异,用于模糊匹配与拼写纠错。

机制

动态规划:d[i][j] = min(d[i-1][j]+1, d[i][j-1]+1, d[i-1][j-1]+cost),cost 为 0 若字符相同否则 1。时间空间 O(m×n),可优化空间至 O(min(m,n))。

用例

  • 拼写检查与纠错
  • DNA 序列比对
  • 模糊搜索与去重
  • 自然语言处理

示例

  • 输入
    kitten → sitting
    输出
    3

    Substitute k→s, e→i, and insert g

常见错误

Full O(mn) computation is too slow for long strings
Use a BK-tree or early termination by threshold

相关词条

相关工具

参考链接