最短编辑距离·动态规划

最短编辑距离·动态规划

有字符串 A n = " a 1 a 2 a 3 . . . a n " , B m = " b 1 b 2 b 3 . . . b m " A_n="a_1 a_2 a_3...a_n",B_m="b_1 b_2 b_3...b_m" An="a1a2a3...an",Bm="b1b2b3...bm",通过插入字符、删除字符、替换字符三种操作将两字符串变成相同字符串,最少需要几步操作

D [ A n ] [ B m ] D[A_n][B_m] D[An][Bm]为两字符串的最短编辑距离, d i [ A n ] [ B m ] d_i[A_n][B_m] di[An][Bm]为两字符串的编辑距离

分析

因为 { A n , B m } \{A_n,B_m\} { An,Bm}存在插入、删除、替换三种操作。对一个字符串的插入操作都是可以在另一个字符串中以删除操作替代而实现相同的编辑效果(让两字符串更相似),因此我们仅以删除与替换操作对字符串进行处理。

所以 { A n , B m } \{A_n,B_m\} { An,Bm}上一阶段的可能情形为 { A n − 1 , B m } , { A n , B m − 1 } , { A n − 1 , B m − 1 } \{A_{n-1},B_{m}\},\{A_{n},B_{m-1}\},\{A_{n-1},B_{m-1}\} { An1,Bm},{ An,Bm1},{ An1,Bm1}

a n = b m a_n=b_m an

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值