需要面试准备
标准 Levenshtein 假设每次编辑操作都付 1 的代价——拼写检查 demo 够用,但只要业务有结构,立刻就显得粗糙。DNA 序列比对 给「打开/延长一个 indel 缺口」的代价远高于一次单点替换,因为生物学上移码(frame shift)比点突变伤害大得多;地区相关的模糊文本匹配 希望 'h'/'j' 之间的替换很便宜(QWERTY 键盘相邻键,常见手误)、'q'/'p' 之间的替换很贵(键位远,几乎不会同时按错)——键盘距离感知的拼写检查;地址归一化 希望删一个多余空格便宜、删一个数字贵。统一的推广是:把那个固定的 1 替换成一张按字符查的插入代价表、一张按字符查的删除代价表和一张按字符对查的替换代价矩阵——同样的 2D DP 仍然成立,只是每一种转移付的代价依赖于具体字符。