編輯距離,又稱levenshtein距離(也叫做edit distance),是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。
例如將kitten一字轉成sitting:
sitten (k->s)
sittin (e->i)
sitting (->g)
所以kitten和sitting的編輯距離是3。俄羅斯科學家vladimir levenshtein在2023年提出這個概念。
給出兩個字串a,b,求a和b的編輯距離。
input
第1行:字串a(a的長度 <= 1000)。output第2行:字串b(b的長度 <= 1000)。
輸出a和b的編輯距離input示例
kittenoutput示例sitting
3#include#include#include#include#include#include#includeusing namespace std;
char a[1005],b[1005];
int dp[1005][1005];
int main()
// else if(m>0&&dp[m][n]==dp[m-1][n]+1)
//
// else
//
// }
// vector::iterator it;
// for(it=v1.begin();it!=v1.end();it++)
// cout<<*it;
// cout<
動態規劃 編輯距離
1.實踐題目 編輯距離 2.問題描述 設a和b是2個字串。要用最少的字元操作將字串a轉換為字串b。這裡所說的字元操作包括 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元。將字串a變換為字串b所用的最少字元運算元稱為字串a到 b的編輯距離,記為d a,b 對於給定的字串a和字串b,計...
動態規劃 編輯距離
給定兩個序列x和y,求從乙個序列到另乙個序列所需變換的最小次數,這裡的變換包括刪除,新增和替換,每次只對乙個元素進行操作。演算法序言 這個題目有點像之前寫的最長公共子串行問題,也是用動態規劃的演算法。能夠應用動態規劃的題目有乙個特點就是具有最優子結構,就是整個問題的最優解會包含子問題的最優解,那麼我...
動態規劃 編輯距離
將乙個字串變為另乙個字串最小操作次數,您對單詞允許以下3種操作 a 插入字元 b 刪除字元 c 替換字元 例如 a horse 變成 b ros 想法 coding utf 8 def char array replace array1,array2 row len array1 col len a...