leetcode第一刷_Edit Distance
来源:互联网 发布:mac的windows截屏 编辑:程序博客网 时间:2024/06/15 18:28
最小编辑距离,很经典的问题,今年微软实习生的笔试有一个这个的扩展版,牵扯到模板之类的,当时一行代码也没写出来。。
dp可以很优雅的解决这个问题,状态转移方程也很明确。用pos[i][j]表示word1的前i个字符与word2的前j个字符之间的编辑距离。如果word[i-1]与word[j-1]相等,那pos[i][j]与pos[i-1][j-1]相等,否则的话,根据编辑的几种操作,可以从三种情况中选取代价最小的一种,从word1中删除一个字符?从word2中删除一个字符?修改其中一个?边界也很简单,一个字符串长度为0时,编辑距离一定是根据另一个的长度不断增加的。
写成代码一目了然:
class Solution {public: int minDistance(string word1, string word2) { int len1 = word1.length(), len2 = word2.length(); int pos[len1+1][len2+1]; for(int i=0;i<=len1;i++) pos[i][0] = i; for(int i=0;i<=len2;i++) pos[0][i] = i; for(int i=1;i<=len1;i++){ for(int j=1;j<=len2;j++){ if(word1[i-1] == word2[j-1]) pos[i][j] = pos[i-1][j-1]; else{ pos[i][j] = min(pos[i-1][j], min(pos[i-1][j-1], pos[i][j-1]))+1; } } } return pos[len1][len2]; }};
0 0
- leetcode第一刷_Edit Distance
- [leetcode刷题系列]Edit Distance
- LeetCode刷题笔录Edit Distance
- LeetCode: Edit Distance
- LeetCode Edit Distance
- LeetCode: Edit Distance
- [Leetcode] Edit Distance
- leetcode 19: Edit Distance
- [LeetCode] Edit Distance
- [Leetcode] Edit Distance
- LeetCode Edit Distance
- [LeetCode] Edit Distance
- [LeetCode]Edit Distance
- Leetcode: Edit Distance
- [leetcode]Edit Distance
- LeetCode-Edit Distance
- [leetcode] Edit Distance
- LeetCode - Edit Distance
- C语言基础
- 一些错误的想法和错误的感悟
- zoj 3511 Cake Robbery(乱搞)
- 程序员必知的8大排序(java实现)(http://www.admin10000.com/document/794.html)
- mathlab saveas figures into a pdf, eps
- leetcode第一刷_Edit Distance
- NPAPI开发详解,Windows版
- (转载)老树下的守候--山门听雨
- 前端神器推荐—我们也可以高效优雅的写前端代码
- 作为互联网创业者的我,与职业网络色情女的QQ过招
- IE插件工作笔记
- hadoop集群搭建-Namenode HA和ResourceManager HA
- 从技术到管理:思维转变是关键
- mysql启动问题