示例代码 登录后复制 class Solution { public: int minDistance(string word1, string word2) { int len1=word1.length(),len2=word2.length(); vector<vector<int>> dp(len1+1,vector<int>(len2+1)); //初始化dp的第0行和第0列的元素都等于其所在的行/列 for(int i=0;i<=len1;i++){ dp[i][0]=i; } for(int i=0;i<=len2;i++){ dp[0][i]=i; } for(int i=1;i<=len1;i++){ for(int j=1;j<=len2;j++){ if(word1[i-1]==word2[j-1]){ dp[i][j]=dp[i-1][j-1]; }else{ //修改消耗的是dp[i-1][j-1]+1 //插入i位置或删除j位置消耗的是dp[i][j-1]+1 //插入j位置或删除i位置消耗的是dp[i-1][j]+1 dp[i][j]=min(dp[i-1][j-1]+1,min(dp[i][j-1]+1,dp[i-1][j]+1)); } } } return dp[len1][len2]; } }; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29. 效果展示 原创作者: u_15305087 转载于: https://blog.51cto.com/u_15305087/11709039