- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
写书评,赢取《编程之美--微软技术面试心得》/BCZM.asp
1
计算字符串的相似度
许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似
程度。我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:
1. 修改一个字符 (如把“a”替换为“b”)。
2. 增加一个字符 (如把“abdd”变为“aebdd”)。
3. 删除一个字符(如把“travelling”变为“traveling”)。
比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”
的方式来达到目的。上面的两种方案,都仅需要一次操作。把这个操作所需要的次数定
义为两个字符串的距离,而相似度等于“距离+1”的倒数。也就是说,“abcdefg”和“abcdef”
的距离为1 ,相似度为1 / 2 = 0.5。
给定任意两个字符串,你是否能写出一个算法来计算出它们的相似度呢?
写书评,赢取《编程之美--微软技术面试心得》/BCZM.asp
2
分析与解法
不难看出,两个字符串的距离肯定不超过它们的长度之和(我们可以通过删除操作
把两个串都转化为空串)。虽然这个结论对结果没有帮助,但至少可以知道,任意两个
字符串的距离都是有限的。
我们还是应该集中考虑如何才能把这个问题转化成规模较小的同样的问题。如果有
两个串A=xabcdae 和B=xfdfa ,它们的第一个字符是相同的,只要计算A [2, …, 7] = abcdae
和B [2, …, 5] = fdfa 的距离就可以了。但是如果两个串的第一个字符不相同,那么可以
进行如下的操作(lenA 和lenB 分别是A 串和B 串的长度):
1 .删除A 串的第一个字符,然后计算A [2, …, lenA ]和B [1, …, lenB]的距离。
2 .删除B 串的第一个字符,然后计算A [1, …, lenA ]和B [2, …, lenB]的距离。
3 .修改A 串的第一个字符为B 串的第一个字符,然后计算A [2, …, lenA ]和B [2, …,
lenB]的距离。
4 .修改B 串的第一个字符为A 串的第一个字符,然后计算A [2, …, lenA ]和B [2, …,
lenB]的距离。
5 .增加B 串的第一个字符到A 串的第一个字符之前,然后计算A [1, …, lenA ]和
B [2, …, lenB]的距离。
6 .增加A 串的第一个字符到B 串的第一个字符之前,然后计算A [2, …, lenA ]和
B [1, …, lenB]的距离。
写书评,赢取《编程之美--微软技术面试心得》/BCZM.asp
3
在这个题目中,我们并不在乎两个字符串变得相等之后的字符串是怎样的。所
以,可以将上面6 个操作合并为:
4. 一步操作之后,再将A [2, …, lenA ]和B [1, …, lenB]变成相同字符串。
5. 一步操作之后,再将A [1, …, lenA ]和B [2, …, lenB]变成相同字符串。
6. 一步操作之后,再将A [2, …, lenA ]和B [2, …, lenB]变成相同字符串。
这样,很快就可以完成一个递归程序:
写书评,赢取《编程之美--微软技术面试心得》/BCZM.asp
4
代码清单3-6
Int CalculateStringDistance(string strA, int pABegin, int pAEnd, string strB,
int pBBegin, int pBEnd)
{
if(pABegin pAEnd)
您可能关注的文档
- 计算机的常用输入设备有键盘与鼠标器.doc
- 计算机的过去现在及未来期末论文.doc
- 计算机的应用及实践.doc
- 计算机第二篇.ppt
- 计算机动画及仿真.ppt
- 计算机二级_VF_上机1试题和答案.doc
- 计算机仿真与可视化设计1.ppt
- 计算机管理教学(CMI)概念.pdf
- 计算机和网络发展对人的影响.ppt
- 计算机基础知识 课件第5篇.ppt
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
最近下载
- 2023年秋国开《管理思想史》形考作业1-4答案.pdf
- 小学一年级数学上册期末试卷(A4打印版).pdf VIP
- 旅游学概论期末考试试题及解析.docx VIP
- 自贡市餐厨垃圾处理配套设施改建项目环评报告书.pdf VIP
- 《音乐之父巴赫》课件.ppt VIP
- 【中考短语】初中英语动词固定搭配全汇总.pdf VIP
- 射频设计软件:Keysight ADS二次开发_(7).Python脚本在KeysightADS中的应用.docx VIP
- 2025年民主生活会100条核心素材.pdf VIP
- (直接打印版)苏教版小学数学一年级上册期末试卷.pdf VIP
- 酒店拆除改造工程专项拆除施工方案.docx VIP
原创力文档


文档评论(0)