[动态规划] 编辑距离

发布时间:2019年09月05日 阅读:288 次

https://leetcode-cn.com/problems/edit-distance/

class Solution {
public:
    int minDistance(string word1, string word2) {
        int n = word1.length();
        int m = word2.length();
        int cost;
        vector<vector<int>> dp(n+1,vector<int>(m+1));
       // for(int i=1;i<=3;i++){
        //    for(int j=1;j<=3;j++){
       //         printf("%d ",dp[i][j]);
       ///     }
       //     printf("\n");
      //  }
        for(int i=0;i<=n;i++)dp[i][0]=i;
        for(int i=0;i<=m;i++)dp[0][i]=i;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
             dp[i][j] = min(dp[i-1][j],dp[i][j-1])+1;//删除和插入
              if(word1[i-1]==word2[j-1])
              {
                  dp[i][j] = min(dp[i][j],dp[i-1][j-1]);//skip
              }
              else{
                   dp[i][j] = min(dp[i][j],dp[i-1][j-1]+1);//替换
              }

            }

        }

        return dp[n][m];
    }
};


Tag:
相关文章

发表评论: