51nod 1183 編輯距離 (dp)

2021-08-28 20:08:57 字數 950 閱讀 9790

編輯距離,又稱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的編輯距離
input示例

kitten

sitting

output示例

3
#pragma gcc optimize(2)

#include#include#include#include#includeusing namespace std;

const int maxn = 1500;

const int inf = 0x3f3f3f3f;

typedef long long ll;

char a[maxn], b[maxn];

int dp[maxn][maxn]; //a串的前i個字母轉換成b串的前j個字母的最短編輯距離

int main()

for (int i = 0; i <= m; i++)

for (int i = 1; i <= n; i++) }

printf("%d\n", dp[n][m]);

return 0;

}}

51nod 1183 編輯距離 dp

1183 編輯距離 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字...

51Nod 1183 編輯距離(dp)

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

51Nod 1183 編輯距離(DP)

題目描述 思路 設 d p i j dp i j dp i j 表示把字串a的前i個字元變成字串b的前j個字元的編輯距離,有轉移方程 d p i 1 j 1 dp i j a i b j 0 1 dp i j 1 1 dp i 1 j 1 end dp i 1 j 1 dp i j a i b j ...