编辑距离问题
来源:互联网 发布:秘鲁域名后缀 编辑:程序博客网 时间:2024/05/18 02:58
1、问题描述:
?设A 和B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符串B。这
里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另
一个字符。将字符串A变换为字符串B 所用的最少字符操作数称为字符串A到B 的编
辑距离,记为 d(A,B)。试设计一个有效算法,对任给的2 个字符串A和B,计算出它
们的编辑距离d(A,B)。
2、题目分析:
题目要求计算两字符串的编辑距离,可以采用动态规划算法求解,由最优子结构性质可建立递归关系如下:
其中数组d[i][j] 存储长度分别为i、j的两字符串的编辑距离;用edit标记所比较
的字符是否相同,相同为0,不同为1;用m、n存储字符串a、b的长度。
3、算法设计:
a. 函数min()找出三个数中的最小值;
b. 函数d()计算两字符串的编辑距离:
①用edit标记所比较的字符是否相同,相同为0,不同为1;
②分别用m、n存储字符串a、b的长度,用数组d[i][j] 存储长度分别为i、j的两字符串的编辑距离,问题的最优值记录于d[n][m]中;
③利用递归式写出计算d[i][j]的递归算法。
首先给定第一行和第一列,然后,每个值d[i,j]这样计算:d[i][j] = min(d[i-1][j]+1,d[i][j-1]+1,d[i-1][j-1]+(s1[i] == s2[j]?0:1));
最后一行,最后一列的那个值就是最小编辑距离
最后一行,最后一列的那个值就是最小编辑距离
- 编辑距离问题
- 【dp】编辑距离问题
- 王晓东 编辑距离问题
- 编辑距离问题 dp
- 编辑距离问题
- 王晓东 编辑距离问题
- 编辑距离问题
- 编辑距离问题
- 编辑距离问题(1)
- 编辑距离问题
- DP_编辑距离问题
- 编辑距离问题(1)
- 编辑距离问题
- 编辑距离问题
- 编辑距离问题
- 编辑距离问题
- dp 编辑距离问题
- 编辑距离问题
- 线程与进程的区别
- 关于Android中Service与Activity的信息交互
- MVC 中Trim()的解决方案
- c#设定某月的第一天与最后一天
- SDUT_Greatest_Number之折半查找解题报告
- 编辑距离问题
- 索引分区分为:本地(局部)索引(local index) 全局索引(global index)
- hdu1576-A/B
- 常见面试题——不用临时变量交换数据
- Understanding and Analyzing iOS Application Crash Reports
- C/C++经典面试题总结摘选 C/C++程序员面试宝典(二)
- HDU2298(三分法+二分法)
- Square Number
- poj1390-dp消方块