題目
設a 和b 是2 個字串。要用最少的字元操作將字串a 轉換為字串b。這裡所說的字元操作包括 (1)刪除乙個字元; (2)插入乙個字元; (3)將乙個字元改為另乙個字元。 將字串a變換為字串b 所用的最少字元運算元稱為字串a到b 的編輯距離,記為d(a,b)。試設計乙個有效演算法,對任給的2 個字串a和b,計算出它們的編輯距離d(a,b)。
輸入
第一行是字串a,檔案的第二行是字串b。字串長度不大於2000。輸出
輸出距離d(a,b)樣例輸入
fxpimu樣例輸出xwr
5
**如下:
#include #include#include #include using namespace std;
#define n 2005
char s1[n],s2[n];
int d[n][n];
void editdistance(int len1,int len2)
else
d[i][j] = min(min(deletion,insertion),replaces);
}
printf("%d\n",d[len1][len2]);
}int main()
return 0;
}
動態規劃之字串最短編輯距離
題目描述給定兩個字串a和b,現在要將a經過若干操作變為b,可進行的操作有 刪除 將字串a中的某個字元刪除。插入 在字串a的某個位置插入某個字元。替換 將字串a中的某個字元替換為另乙個字元。現在請你求出,將a變為b至少需要進行多少次操作。輸入格式第一行包含整數n,表示字串a的長度。第二行包含乙個長度為...
動態規劃 計算字串之間的距離
levenshtein 距離,又稱編輯距離,指的是兩個字串之間,由乙個轉換成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。編輯距離的演算法是首先由 科學家levenshtein提出的,故又叫levenshtein distance。字串a a...
動態規劃 線性 DP 字串編輯距離
字串編輯距離,即 levenshtein 距離,是 科學家 vladimir levenshtein 提出的概念,是指從乙個字串修改到另乙個字串時,編輯單個字元所需的最少次數,編輯單個字元允許的操作有 替換 插入 刪除。levenshtein 距離一般用來衡量兩個字串的相似度,一般來說,兩個字串的編...