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输出3Substitute 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