首页 > 其他 > 详细

LC72 Edit Distance

时间:2016-03-08 00:25:22      阅读:81      评论:0      收藏:0      [点我收藏+]

一道字符串题,在没有想到用动态规划前感觉无从下手。注意动态规划的初始化操作。

技术分享
 1 class Solution {
 2 public:
 3     int minDistance(string word1, string word2) {
 4         if(word1.size()==0||word2.size()==0)
 5             return word1.size()==0?word2.size():word1.size();
 6         int width=word1.size()+1;
 7         int height=word2.size()+1;
 8         vector<vector<int> > iv(height,vector<int>(width,0));
 9         for(int i=0;i<width;i++)
10             iv[0][i]=i;
11         for(int i=0;i<height;i++)
12             iv[i][0]=i;
13         for(int i=1;i<height;i++)
14         {
15             for(int j=1;j<width;j++)
16             {
17                 if(word1[j-1]==word2[i-1])
18                 {
19                     iv[i][j]=iv[i-1][j-1];
20                 }
21                 else
22                 {
23                     int tmp=(iv[i-1][j]>iv[i][j-1])?(iv[i][j-1]+1):(iv[i-1][j]+1);
24                     iv[i][j]=(tmp>(iv[i-1][j-1]+1))?(iv[i-1][j-1]+1):tmp;
25                 }
26             }
27         }
28         return iv[word2.size()][word1.size()];
29     }
30 };
View Code

 

LC72 Edit Distance

原文:http://www.cnblogs.com/vaecn/p/5252276.html

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