Edit Distance
来源:互联网 发布:旅行商问题算法回溯法 编辑:程序博客网 时间:2024/06/07 13:55
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)
You have the following 3 operations permitted on a word:
a) Insert a character
b) Delete a character
c) Replace a character
此题编程之美有,其上使用的是递归。此处为dp!
int minDistance(string word1, string word2) { if(word1.empty() && word2.empty())return 0; if(word1.empty())return word2.size(); if(word2.empty())return word1.size(); vector< vector<int> > dp(word1.size()+1,vector<int>(word2.size()+1)); dp[0][0] = 0; for(int i = 1;i <= word1.size();i++) { dp[i][0] = i; } for(int i = 1;i <= word2.size();i++) { dp[0][i] = i; } for(int i = 1;i <= word1.size();i++) { for(int j = 1;j <= word2.size();j++) { if(word1[i-1] == word2[j-1]) { dp[i][j] = dp[i-1][j-1] ; } else { int temp_min = min(dp[i-1][j-1],dp[i][j-1]);//3种可能的情况 替换,后面俩种添加与删除都有可能! dp[i][j] = min(temp_min,dp[i-1][j]) + 1; } } } return dp[word1.size()][word2.size()]; }
0 0
- edit distance
- Edit Distance
- edit distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Android init.c简析
- 第一个Ajax程序
- shiro 简介(五)
- OpenGL中的Alpha测试,深度测试,模板测试,裁减测试 .
- C++中的各种const总结
- Edit Distance
- 对一个deb包的解压、修改、重新打包全过程方法
- 线程锁的优化要考虑的方向
- QT与VC的区别
- cocos2d-x之三种定时器的使用
- diff与cmp比较
- ssl双向认证和单向认证原理
- 编程练习:记事本
- Java中 static的用法