计算字符串的相似度
来源:互联网 发布:中国移动关闭3g网络 编辑:程序博客网 时间:2024/06/05 10:53
编辑距离: Edit Distance,又称Levenshtein距离,是指一个字符串经过增加、删除、修改后操作转变成另一个字符串所需要的最小操作次数。
相似度:等于“编辑距离+1”的倒数。所以编辑距离越小,相似度越大。
如s1 = “abc”,s2 = “ab”,其编辑距离为1,相似度为1/(1+1) = 0.5
问题:给定两个字符串,计算其相似度
解决方法:利用动态规划,先计算两个字符串的编辑距离,相似度也就很容易的得出来了
#include <iostream>#include <string.h>#include <math.h>using namespace std;int main(){ string s, t; cin >> s; cin >> t; int len_s = s.length(); int len_t = t.length(); int dp[len_s+1][len_t+1] = {0}; //预处理、初始化 for(int i = 0; i <= len_s; ++i){ dp[i][0] = i; } for(int i = 0; i <= len_t; ++i){ dp[0][i] = i; } for(int i = 1; i <= len_s; ++i){ for(int j = 1; j <= len_t; ++j){ if(s[i-1] == t[j-1]){ dp[i][j] = dp[i-1][j-1]; } else{ dp[i][j] = 1 + min(dp[i-1][j-1], min(dp[i-1][j], dp[i][j-1])); } cout << dp[i][j] << endl; } } int editDist = dp[len_s][len_t]; double similarity = 1.0/(editDist+1); cout << similarity << endl; return 0;}
阅读全文
0 0
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度。
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 常用的数据集——machine learning
- js引用+时间戳
- thinkphp5 学习(一)模板布局
- 每天回顾linux命令(renice)
- React Redux router Immutable Es6等框架学习要点整理
- 计算字符串的相似度
- 1012. 数字分类 (20) PAT乙级真题
- java.lang.Error: native lib version wrong!!!
- jar反编译再重新打包方法
- 推荐投入产出比高的seo策略教程
- summernote文本编辑器使用过程中遇到的坑
- 职责链(Chain of responsibility)模式
- MySQL中修改列名或列的数据类型
- 63. Unique Paths II