首页 > 其他 > 详细

最小编辑距离

时间:2020-03-08 12:46:45      阅读:92      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 技术分享图片

 

 技术分享图片

这道题也是leetcode72,

注意代码中的i,j代表第几个字符,0表示空串,所以比较word1的第i个与word2的第j个是 

if(word1[i-1] == word2[j-1])
    int minDistance(string word1, string word2) {
        int m = word1.length(), n = word2.length();
        for(int i = 0;i <= m;i++)  d[i][0] = i;
        for(int i = 0;i <= n;i++)  d[0][i] = i;
        for(int i = 1;i <= m;i++)
            for(int j = 1;j <= n;j++)
            {
                if(word1[i-1] == word2[j-1]) d[i][j] = d[i-1][j-1];
                else{
                    d[i][j] = min(d[i-1][j-1], min(d[i-1][j], d[i][j-1])) + 1;
                }
            }
        
        return d[m][n];
    }

还可以用滚动数组,去掉第一维节省空间(不会减少时间)

 

 

参考链接:《算法设计与分析》-董老师的PPT

最小编辑距离

原文:https://www.cnblogs.com/lfri/p/12441517.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!