最短编辑距离问题理解
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));
可直接用递归求解或者动态规划求解。
以上是关于最短编辑距离问题理解的主要内容,如果未能解决你的问题,请参考以下文章