edit distance leetcode

简介:

这样的字符转换的dp挺经典的,

若word1[i+1]==word2[j+1] dp[i+1][j+1] = dp[i][j];否则,dp[i+1][j+1] = dp[i][j] + 1。(替换原则),dp[i+1][j+1]还能够取dp[i][j+1]与dp[i+1][j]中的较小值。(删除加入原则)

class Solution {
public:
    int minDistance(string word1, string word2) {
        int dp[word1.size()+1][word2.size()+1];
        for(int i = 0; i < word1.size()+1; i++)
          dp[i][0] = i;
        for(int i = 0; i < word2.size()+1; i++)
          dp[0][i] = i;
        for(int i = 0; i < word1.size(); i++) {
          for(int j = 0; j < word2.size(); j++) {
            if(word1[i] == word2[j])
              dp[i+1][j+1] = dp[i][j];
            else 
              dp[i+1][j+1] = min(min(dp[i][j],dp[i][j+1]),dp[i+1][j])+1;
          }
        }
      return dp[word1.size()][word2.size()];
    }
};







本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5222739.html,如需转载请自行联系原作者

相关文章
|
数据库 C语言
LeetCode 72. Edit Distance
给定两个单词word1和word2,找到将word1转换为word2所需的最小操作数。 您对单词允许以下3个操作: 插入一个字符 删除一个字符 替换一个字符
43 0
LeetCode 72. Edit Distance
LeetCode 258. Add Digits
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
51 0
LeetCode 258. Add Digits
|
SQL 关系型数据库 MySQL
LeetCode 613. Shortest Distance in a Line
LeetCode 613. Shortest Distance in a Line
80 0
Leetcode-Easy 72. Edit Distance
Leetcode-Easy 72. Edit Distance
67 0
Leetcode-Easy 72. Edit Distance
Leetcode-Easy 657. Judge Route Circle
Leetcode-Easy 657. Judge Route Circle
68 0
Leetcode-Easy 657. Judge Route Circle
|
机器学习/深度学习
Leetcode-Easy 887. Projection Area of 3D Shapes
Leetcode-Easy 887. Projection Area of 3D Shapes
108 0
Leetcode-Easy 887. Projection Area of 3D Shapes
HDOJ(HDU) 2162 Add ‘em(求和)
HDOJ(HDU) 2162 Add ‘em(求和)
59 0