编辑距离算法

Posted pppyyyzzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编辑距离算法相关的知识,希望对你有一定的参考价值。

这是个很经典的动态规划题目(可惜我每次都只明白原理,却不知道怎么写).

主要概念:https://www.jianshu.com/p/46ff18e8d636

题目链接:https://leetcode-cn.com/problems/edit-distance/

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

目前对动态规划的题目终于有点认识了,不过还需要接着练习很多题,才能明白这种思想

以上是关于编辑距离算法的主要内容,如果未能解决你的问题,请参考以下文章

计算两组标签相似度算法——levenshtein distance 编辑距离算法

转载编辑距离及编辑距离算法

编辑距离算法

文本相似度算法之编辑距离算法

文本相似度算法之编辑距离算法

编辑距离算法(Levenshtein)