【字符串】72. 编辑距离

题目:

 

 

解答:

 

 

 1 class Solution {
 2 public:
 3     int minDistance(string word1, string word2) 
 4     {
 5         vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1, 0));
 6 
 7         for (int i = 0; i < dp.size(); i++)
 8         {
 9             dp[i][0] = i;
10         }
11 
12         for (int j = 0; j < dp[0].size(); j++)
13         {
14             dp[0][j] = j;
15         }
16 
17         for (int i = 1; i < dp.size(); i++)
18         {
19             for (int j = 1; j < dp[i].size(); j++)
20             {
21                 dp[i][j] = min(dp[i - 1][j - 1], min(dp[i - 1][j], dp[i][j - 1])) + 1;
22                 
23                 if (word1[i - 1] == word2[j - 1])
24                 {
25                     dp[i][j] = min(dp[i][j], dp[i - 1][j - 1]);
26                 }
27             }
28         }
29         return dp.back().back();
30     }
31 };

 

posted @ 2020-05-05 21:16  梦醒潇湘  阅读(143)  评论(0)    收藏  举报