计算字符串的相似度
来源:互联网 发布:淘宝运营工作计划 编辑:程序博客网 时间:2024/05/16 17:34
计算字符串的相似度
许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程度。 我们定义了一套操作方法来把两个不相同的字符串变得相同, 具体的操作方法为:
1. 修改一个字符 (如 把“a”替换为“b”)。
2. 增加一个字符 (如把“abdd”变为“aebdd”)。
3. 删除一个字符(如把“travelling”变为“traveling”)。
比如, 对于“abcdefg”和“abcdef”两个字符串来说, 我们认为可以通过增加/减少一个“g”
的方式来达到目的。上面的两种方案,都仅需要一次操作。把这个操作所需要的次数定
义为两个字符串的距离,而相似度等于“距离+1”的倒数。也就是说,“abcdefg”和“abcdef”
的距离为 1,相似度为 1 / 2 = 0.5。
给定任意两个字符串,你是否能写出一个算法来计算出它们的相似度呢?
//代码来自:编程之美Int CalculateStringDistance(string strA, int pABegin, int pAEnd, string strB, int pBBegin, int pBEnd) { if(pABegin > pAEnd) { if(pBBegin > pBEnd) return 0; else return pBEnd – pBBegin + 1; } if(pBBegin > pBEnd) { if(pABegin > pAEnd) return 0; else return pAEnd – pABegin + 1; } if(strA[pABegin] == strB[pBBegin]) { return CalculateStringDistance(strA, pABegin + 1, pAEnd, strB, pBBegin + 1, pBEnd); } else { int t1 = CalculateStringDistance(strA, pABegin + 1, pAEnd, strB, pBBegin + 2, pBEnd); int t2 = CalculateStringDistance(strA, pABegin + 2, pAEnd, strB, pBBegin + 1, pBEnd); int t3 = CalculateStringDistance(strA, pABegin + 2, pAEnd, strB, pBBegin + 2, pBEnd); return minValue(t1,t2,t3) + 1; } }
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度。
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- 计算字符串的相似度
- iPhone开发中图像处理相关要点
- TMS320DM816x达芬奇数字媒体处理器简介
- 忘记oracle的sys,system用户密码怎么修改
- 查找链表中倒数第k个结点
- Java编程中“为了性能”尽量要做到的一些地方
- 计算字符串的相似度
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- escape()、encodeURI()、encodeURIComponent()区别详解
- C语言之路 第零章
- 活跃的magnify glass效果开源项目
- C语言之路 第一章C语言简介
- windows server 2008下无法检查到无线信号的解决方法
- mex文件编程:Specified export _mexFunction is not defined
- js 连接url加参数