相近字符串的匹配--编辑距离问题

本文探讨了编辑距离问题,即如何衡量两个字符串之间的差异。通过定义更改的三种基本类型:替代、插入和删除,我们可以计算字符串之间的编辑距离。借助动态规划(DP)思想,可以简化解决此类问题的算法。递归形式的编辑距离问题中,通过比较不同操作的代价,如删除、插入和替换,可以得到最小编辑距离。文章提供了递归算法的出口条件,并指出在实现时的巧妙之处。
摘要由CSDN通过智能技术生成

首先需要解决的问题是:定义一个函数(cost function)计算两个字符串的相差程度。
一个合理的设计是:计算从一个字符串改成另一个字符串需要经过的步数。

更改的三种基本类型
  • 替代:更改一个字符,如shot->spot
  • 插入: 插入一个字符,如ago->agog
  • 删除:删除一个字符,如hour->our

这样计算出从字符串P变到字符串T总共需要多少基本类型,就是编辑距离。

这种相似字符串的匹配算法似乎很难,但是借助DP思想,问题将非常简洁。又是见证奇迹的时候。

递归形式的编辑距离问题

i,j 为字符串前缀子串的最后一个字符。
字符串P(长度为m)变T(长度为n),我们以 Pi,Tj 表示下标分别为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值