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,如需转载请自行联系原作者

相关文章
|
6月前
|
机器学习/深度学习 Java
hdu-2680-Choose the best route(dijkstra)
hdu-2680-Choose the best route(dijkstra)
29 0
|
数据库 C语言
LeetCode 72. Edit Distance
给定两个单词word1和word2,找到将word1转换为word2所需的最小操作数。 您对单词允许以下3个操作: 插入一个字符 删除一个字符 替换一个字符
67 0
LeetCode 72. Edit Distance
Leetcode-Easy 72. Edit Distance
Leetcode-Easy 72. Edit Distance
86 0
Leetcode-Easy 72. Edit Distance
|
机器学习/深度学习
HDU-2680,Choose the best route(Dijkstra)
HDU-2680,Choose the best route(Dijkstra)
HDOJ(HDU) 2162 Add ‘em(求和)
HDOJ(HDU) 2162 Add ‘em(求和)
73 0
|
算法 机器学习/深度学习 消息中间件