最短编辑距离问题理解

Posted shqhdmr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最短编辑距离问题理解相关的知识,希望对你有一定的参考价值。

最短编辑距离是指两个字符串,把其中一个字符串转为另一个字符串所需要花费的最小操作成本。

设dp[i][j]为Xi与Yj的最短编辑距离,则Xi与Yj处于最优解时的排列有三种情况

1.Xi最后一个元素xi位于Yj最后一个元素yj的左边

2.Xi最后一个元素xi位于Yj最后一个元素yj的右边

3.Xi最后一个元素xi与Yj最后一个元素yj重合

无论最终dp[i][j]的字符串如何对齐,只用取三种情况的最小值即可。

对于1,转化操作时,yj是必然要删掉的,故必然有1个单位的操作成本,因为dp[i][j]是最优操作成本,故dp[i][j]-1就是Xi与Yj-1的最优操作成本,即dp[i][j]-1=dp[i][j-1],即dp[i][j] = dp[i][j-1] + 1。

对于2,同理,对称,xi是必然要删掉的,dp[i][j] = dp[i-1][j] + 1

对于3,若xi = yj,则没有任何成本,此时Xi与Yj的最小操作成本与Xi-1和Yj-1相同,dp[i][j] = dp[i-1][j-1] + 0;若xi ≠ yj,则必然要将xi替换为yj或反之,故必然有1个单位的操作成本,所以dp[i][j] - 1是Xi-1与Yj-1的最优成本,dp[i][j] = dp[i-1][j-1] + 1;

整理递归式:dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1] + diff(xi, yj));

可直接用递归求解或者动态规划求解。

以上是关于最短编辑距离问题理解的主要内容,如果未能解决你的问题,请参考以下文章

最短编辑距离

最短编辑距离算法实现

最短编辑距离

poj4323 最短编辑距离

902. 最短编辑距离

最短编辑距离 72.EditDistance.md