动态规划算法设计与实现
问题描述
设 A 和 B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符串B。这里所说的字符操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串 A 变换为字符串 B 所用的最少字符操作数称为字符串A到B 的编辑距离,记为d(A, B) 。试设计一个有效算法,对任给的2 个字符串A和B,计算出它们的编辑距离d(A,B)。例如,字符串fxpimu和字符串xwrs的编辑距离为5
问题描述
设 A 和 B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符串B。这里所说的字符操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串 A 变换为字符串 B 所用的最少字符操作数称为字符串A到B 的编辑距离,记为d(A, B) 。试设计一个有效算法,对任给的2 个字符串A和B,计算出它们的编辑距离d(A,B)。例如,字符串fxpimu和字符串xwrs的编辑距离为5
2.[i](insert) y 插入字符y
3.[r](replace) x y 将x 替换为y
4.[s](skip) 跳过一个字符d("fxpimu","xwrs")
=
fxpimu xwrs [x]f
xpimu xwrs [s]x
x pimu xwrs [i]w [x]p 其实就是[r] w p
xw imu xwrs [i]r [x]i 其实就是[r] r i
xwr mu xwrs [i]s [x]m 其实就是[r] s m
xwrs u xwrs [x]u
除去skip操作不考虑,其他的步骤数量就是 d(a,b)
关键是求可重用的字符以及排序吧
算法不精通,吃饭去了。。