72. 编辑距离

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

 

posted @ 2020-04-16 10:36  Jinxiaobo0509  阅读(112)  评论(0)    收藏  举报