Edit Distance
来源:互联网 发布:spss数据统计与分析pdf 编辑:程序博客网 时间:2024/06/10 17:15
用动态规划求解这一点应该是毫无疑问的,但是递推公式实在是太蛋疼了
EDIT[i,j] = min( EDIT[i - 1,j] + 1, EDIT[i,j - 1] + 1, EDIT[i-1, j - 1] + f(x[i],y[j]))
EDIT[i,j]表示对于字符串a从1到i的子串和字符串b从1到j的字串的编辑距离。(字符串下标从1开始)
EDIT[i - 1,j] + 1表示对a 在i 位置删除delete操作
EDIT[i,j - 1] + 1 表示insert添加操作
EDIT[i-1, j - 1] + f(x[i],y[j])这里如果x[i] == y[j] 则 f(x[i],y[j]) == 0 否则 ==1,等于0表示不用进行替换操作,否则等于1表示需要进行替换操作
如果还是看不懂这个蛋疼的递推公式的话,可以参考我的另一篇博文:点击打开链接
class Solution {public:int minDistance(string word1, string word2) {int row = word1.length() + 1;int col = word2.length() + 1;vector<vector<int> > edit(row, vector<int>(col));for (int i = 0; i < row; i++)edit[i][0] = i;for (int i = 0; i < col; i++)edit[0][i] = i;for (int i = 1; i < row; i++)for (int j = 1; j < col; j++) {if (word1[i - 1] == word2[j - 1])edit[i][j] = edit[i - 1][j - 1];elseedit[i][j] = edit[i - 1][j - 1] + 1;edit[i][j] = min(edit[i][j], min(edit[i - 1][j] + 1, edit[i][j - 1] + 1));}return edit[row - 1][col - 1];}};
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
- objdump生成可读的汇编代码
- 南宁市究竟有多少家跨境购物体验中心?
- SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”问题解决
- #午安,努力#11.29
- 结构体(struct) 的 sizeof 大小
- Edit Distance
- 在ListView中动态添加EditText并对其中的数据进行保存和由于复用引起的Editext中的内容显示异常的解决方案
- React Native环境搭建
- Pushwoosh集成-原生系统推送
- Android实时监听网络状态 wifi
- “当前运算的非线性报表超过授权运算的个数”的错误分析
- tornado初印象
- Linux 下MySQL 访问示例
- 十二周进制转换