參考資訊:
https://www.youtube.com/watch?v=reICpCoC97Y
https://www.cnblogs.com/grandyang/p/4344107.html
題目:
提示:
解答:
int min(int a, int b) { return a > b ? b : a; } int minDistance(char *word1, char *word2) { int i = 0; int j = 0; int w1_len = strlen(word1); int w2_len = strlen(word2); int dp[501][501] = { 0 }; for (i = 0; i <= w1_len; i++) { dp[i][0] = i; } for (j = 0; j <= w2_len; j++) { dp[0][j] = j; } for (i = 1; i <= w1_len; i++) { for (j = 1; j <= w2_len; j++) { if (word1[i - 1] == word2[j - 1]) { dp[i][j] = dp[i - 1][j - 1]; } else { dp[i][j] = min(dp[i - 1][j - 1], min(dp[i - 1][j], dp[i][j - 1])) + 1; } } } return dp[w1_len][w2_len]; }