最短编辑距离问题 : Levenshtein Distance
来源:互联网 发布:python 字符串方法 编辑:程序博客网 时间:2024/06/01 22:13
个人觉得只要你能明白edit数组的含义就可以理解状态转移方程了。
/*可以用来表示字符串的相似度?*/#include <bits/stdc++.h>using namespace std;int edit[100][100] ;//edit(i,j)表示从 A的前i个字符 转化成 B的前j个字符所需的操作次数int str_equal(char &a,char &b){ //判断两个字符是否相等,相等返回0,否则返回1 return 1^(a==b);}int Levenshtein(char *a, char *b ,int al,int bl){ //返回两个字符串的最短编辑距离 memset(edit , 0 , sizeof edit); edit[0][0] = 0 ; for (int i = 1 ; i <= al ;i++) edit[i][0] = i; for (int j = 1 ; j <= bl ;++j) edit[0][j] = j; for (int i = 1 ; i <= al ; ++i) for (int j = 1 ; j <= bl ;++j){ edit[i][j] = min(min( edit[i][j-1]+1 , edit[i-1][j]+1 ) , edit[i-1][j-1]+str_equal(a[i-1],b[j-1]));//edit(i,j)可由三种状态转变来 //cout<<"i j "<<i<<"-"<<j<<" "<<edit[i][j]<<endl ; } return edit[al][bl] ;}int main (){ char a[] = "fxpimu" ; char b[] = "xwrs" ; //char d='d',e='d'; //cout<<str_equal(d,e); cout<<Levenshtein(a,b,6,4); return 0;}
0 0
- 最短编辑距离问题 : Levenshtein Distance
- 编辑距离(Levenshtein Distance)
- 编辑距离算法 Levenshtein Distance
- 编辑距离(Levenshtein Distance)
- Levenshtein Distance(编辑距离)
- 编辑距离算法(Levenshtein distance)
- 编辑距离(Edit Distance | Levenshtein距离)
- 编辑距离(Levenshtein Distance) (转)
- Levenshtein distance最小编辑距离算法实现
- Levenshtein distance最小编辑距离算法实现
- Levenshtein distance最小编辑距离算法实现
- Minimum edit distance(levenshtein distance)(最小编辑距离)初探
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- Caffe学习系列(12):训练和测试自己的图片
- Python 名字空间
- hdu 2018递推
- void show()const;
- javascript中==和===的区别
- 最短编辑距离问题 : Levenshtein Distance
- WebService学习汇总
- 坚持#第80天~不赖床不赖床,手机闹铃远离床(是关键),坚定决心去抗争(是信念),想想背后潭州的老师们(是优秀)!
- 入手kindle看钢铁
- 浅析Java中的final关键字
- 国内老版本ubuntu更新源地址以及sources.list的配置方法
- VS2013+QT5+opencv3.1显示摄像头
- 线程、线程信号量等常用函数小结
- ubuntu下如何处理出现“ unable to execute ./DrClientLinux: No such file or directory”,“没有那个文件或目录”的问题。