目录
题目
待添加
解法一
int min(int a, int b) {
return a < b ? a : b;
}
int minDistance(char* word1, char* word2) {
const int len1 = strlen(word1), len2 = strlen(word2);
int dp[len2 + 1];
for (int j = 0; j <= len2; j++) {
dp[j] = j;
}
for (int i = 1; i <= len1; i++) {
int leftUp = dp[0];
dp[0] = i;
for (int j = 1; j <= len2; j++) {
int tmp = dp[j];
if (word1[i - 1] == word2[j - 1]) {
dp[j] = leftUp;
} else {
dp[j] = min(min(dp[j], dp[j - 1]), leftUp) + 1;
}
leftUp = tmp;
}
}
return dp[len2];
}