51Nod - 1183 编辑距离
生活随笔
收集整理的這篇文章主要介紹了
51Nod - 1183 编辑距离
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:找出字符串的編輯距離,即把一個字符串s1最少經過多少步操作變成編程字符串s2,操作有三種,添加一個字符,刪除一個字符,修改一個字符
?
解析:
首先定義這樣一個函數——edit(i, j),它表示第一個字符串的長度為i的子串到第二個字符串的長度為j的子串的編輯距離。
顯然可以有如下動態規劃公式:
- if i == 0 且 j == 0,edit(i, j) = 0
- if i == 0 且 j > 0,edit(i, j) = j
- if i > 0 且j == 0,edit(i, j) = i
- if?i ≥ 1? 且?j ≥ 1 ,edit(i, j) == min{ edit(i-1, j) + 1, edit(i, j-1) + 1, edit(i-1, j-1) + f(i, j) },
- 當第一個字符串的第i個字符不等于第二個字符串的第j個字符時,f(i, j) = 1;否則,f(i, j) = 0。
?
轉載于:https://www.cnblogs.com/renwjing/p/7346013.html
總結
以上是生活随笔為你收集整理的51Nod - 1183 编辑距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 1087——FBI树
- 下一篇: volatile的适用场合