#include #define n 1002
char* src=null, *des=null;
int m, n;
int dis[n][n];
main(){
int i, j, k;
while(scanf("%d",&m)!=eof){
src = (char*)malloc(sizeof(char)*(m+1));
scanf("%s",src);
scanf("%d",&n);
des = (char*)malloc(sizeof(char)*(n+1));
scanf("%s",des);
for(i=0;i
思路:動態規劃。將a到b的轉換,轉化為最優子結構問題: a[i]與b[j] 需要的操作次數dis[i][j],等於:
if a[i] == b[j] , dis[i][j] = dis[i-1][j-1]
否則, dis[i][j] = min( dis[i-1][j] + 1 // 刪除操作
dis[i][j-1] +1 //插入操作
dis[i-1][j-1] + 1 ) //替換操作
有非遞迴和遞迴做法。
最小編輯距離 poj3356
我開始讀題的時候以為弄錯提了。看來讀題還是有待提高 題意是 給定兩個串,乙個a,b,讓a變成b 有兩種操作 1 增加乙個字元 2 減少乙個字元 3 轉換乙個字元 每一次操作算一次運算元,問你最小的運算元 在華南農業大學的acm群裡有人問這道題,後來翻了翻,還是挺有意思的,開始以為是最長公共子串,後來...
poj 3356 求最短編輯距離
題目大意 給定兩個字串x,y,要你求出x經過插入,刪除,替換變成y所要的最少操作,即編輯距離。當x i y j 時,i和j不需要編輯,要麼刪除,要麼插入,要麼替換 dp i j min dp i 1 j 1 dp i 1 j 1,dp i j 1 1 當x i y i 時,i和j不需要編輯 dp i...
POJ3356 AGTC 題解 最短編輯距離問題
題目大意 求 由字串 s 通過下列三種操作 插入乙個字元 刪除乙個字元 改變乙個字元 變換到字串 t 所需要的最少操作次數 亦即最短編輯距離問題 解題思路 定義狀態 f i j 表示 s 0.i 和 t 0.j 合併所需的最小花費,則可得狀態轉移方程為 字串座標從 1 開始,0 表示乙個都沒選 實現...