字符串编辑距离,又称



Levenshtein距离,

指由一个字符串变成另一个字符串所需的最少的编辑次数,这些编辑操作包括将一个字符替换为另一个字符,删除一个字符和添加一个字。

详细内容可以参考

http://en.wikipedia.org/wiki/Levenshtein_distance


则C++代码实现为:


int minimum(int a,int b,int c)
{return min(a,min(b,c));
}
int LevenshteinDistance(const char* s, int len_s, const char* t, int len_t)
{/* base case: empty strings */if (len_s == 0) return len_t;if (len_t == 0) return len_s;int cost = 0;/* test if last characters of the strings match */if (s[len_s-1] == t[len_t-1])cost = 0;elsecost = 1;/* return minimum of delete char from s, delete char from t, and delete char from both */return minimum(LevenshteinDistance(s, len_s - 1, t, len_t    ) + 1,LevenshteinDistance(s, len_s    , t, len_t - 1) + 1,LevenshteinDistance(s, len_s - 1, t, len_t - 1) + cost);
}

比如由字符串aabab转换成字符串baab通过上面的代码技术得到结果为2.

具体步骤是

第一步,将第一个a替换成b。

第二步,将第二个b删除。

如图所示

字符串编辑距离的计算方法相关推荐

  1. 字符串编辑距离(Edit Distance)

    一.问题描述 定义 字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符 ...

  2. 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

    最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列.比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大:而 {5,-6,4,2}的最大子序列是{4, ...

  3. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  4. JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码)

    JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码) levenshteinDistance.js完整源代码 # levenshteinDistance.te ...

  5. 动态规划 —— 线性 DP —— 字符串编辑距离

    [概述] 字符串编辑距离,即 Levenshtein 距离,是俄国科学家 Vladimir Levenshtein 提出的概念,是指从一个字符串修改到另一个字符串时,编辑单个字符所需的最少次数,编辑单 ...

  6. 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...

    作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11969497. 声明:版权所有,转载请注明出处,谢谢 ...

  7. 字符串编辑距离(转载)

    Levenshtein Distance (LD, 来文史特距离)也叫edit distance(编辑距离),它用来表示2个字符串的相似度,LD定义为需要最少多少步基本操作才能让2个字符串相等,基本操 ...

  8. 字符串编辑距离之JaroWinklerDistance

    概述 Jaro-Winkler Distance是一个度量两个字符序列之间的编辑距离的字符串度量标准,是由William E. Winkler在1990年提出的Jaro Distance度量标准的一种 ...

  9. 字符串编辑距离之Damerau–Levenshtein Distance

    概述 Damerau–Levenshtein Distance用来测量两个字符序列之间的编辑距离的字符串度量标准.两个词的Damerau–Levenshtein Distance是从一个词转换为另一个 ...

最新文章

  1. react 快速上手开发_React中测试驱动开发的快速指南
  2. R语言difftime函数计算时间差值实战
  3. Ubuntu10下MySQL搭建Amoeba_读写分离
  4. linux nfs acl 特定ip,技术|RHCSA 系列(七): 使用 ACL(访问控制列表) 和挂载 Samba/NFS 共享...
  5. CSS3笔记之基础篇(一)边框
  6. tostring 16进制_ToString:身份哈希码的十六进制表示形式
  7. mysql动态标签可以嵌套吗_Mysql动态嵌套游标
  8. 图形学之空间坐标变化之三维图形观察及变换
  9. 【IDEA】IDEA 下 maven 一个诡异问题,一个正常项目 过了一夜 依赖很多 飘红
  10. Linux学习总结(39)——系统管理员应该知道的 20 条 Linux 命令
  11. 面向对象编程(三):重载运算符和重载函数
  12. PHP中普通类、抽象类、接口之间的关联
  13. MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU
  14. 安装无线网卡后,显示网络电缆被拔出?
  15. Springboot—JpaRepository—【duplicate entry for key 】
  16. moment.js时间操作
  17. R语言并行计算beta-NTI值
  18. 使用吉特哈布Codespaces和Visual Studio Code进行C++开发
  19. 编写一个用于字符串比较的函数
  20. 计算机专业择偶标准,爱情句子:说来说去我的择偶标准也就一个字——你

热门文章

  1. 鼓浪屿天气预报软件测试,厦门鼓浪屿天气预报15天
  2. java udp 多播 广播_Java UDP 广播与多播
  3. iis mysql php 附件上传大小_修改上传附件2M大小限制的方法/php+iis上传附件默认大小修改方法...
  4. c++   string类
  5. python异步写文件_结合异步http请求将数据写入文件
  6. 文巾解题 46. 全排列
  7. 深度学习核心技术精讲100篇(三十一)-大众点评搜索基于知识图谱的深度学习排序实践
  8. 用Tableau画可调整的树状图(Tree Diagram)
  9. 非常值得收藏的 IBM SPSS Modeler 算法简介
  10. mapreduce编程实例(4)-求中位数和标准差