C 編輯距離

2022-03-22 18:17:55 字數 1038 閱讀 1762

編輯距離,又稱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)。

第2行:字串b(b的長度 <= 1000)。

output

輸出a和b的編輯距離

sample input

kitten

sitting

sample output

3思路**:

思路主要就是對齊。我**解析了。細節在上面的**。

**如下:

#include#include#includeusing namespace std;

int str[1005][1005];

char a[1004];

char b[1004];

int lena,lenb;

void cmp()

///代表著豎著的變成橫著的字串的減少數目。

for(int j=0;j<=lenb;j++)

///開始對齊,求下面變成上面的字串的最小的變化次數

///從1開始,0的都已經賦值,

for(int i=1;i<=lena;i++)

else

///左上方的未改變的加上d1(新增乙個字元或者不變),變成現在的字串,與d2比較,去最小。

str[i][j] = min(d2,d1+str[i-1][j-1]);}}

}int main()

return 0;

}

編輯距離及編輯距離演算法

編輯距離概念描述 編輯距離,又稱levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。例如將kitten一字轉成sitting sitten k s sittin e i sitting g 俄...

編輯距離及編輯距離演算法

include include include using namespace std const int max 1001 int maxlen max max int maxlen string str1,string str2 return maxlen len1 len2 int main ...

編輯距離及編輯距離演算法

include include include using namespace std const int max 1001 int maxlen max max int maxlen string str1,string str2 return maxlen len1 len2 int main ...