最短编辑距离问题理解
最短編輯距離是指兩個字符串,把其中一個字符串轉為另一個字符串所需要花費的最小操作成本。
設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));
可直接用遞歸求解或者動態規劃求解。
轉載于:https://www.cnblogs.com/SHQHDMR/p/10664927.html
總結
以上是生活随笔為你收集整理的最短编辑距离问题理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IPv6 RIPng (PT)
- 下一篇: 时艳强对话酒儿:gate首发平台币的时机