动态规划算法设计与实现
问题描述
设 A 和 B 是2 个字符串。要用最少的字符操作将字符串A 转换为字符串B。这里所说的字符操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串 A 变换为字符串 B 所用的最少字符操作数称为字符串A到B 的编辑距离,记为d(A, B) 。试设计一个有效算法,对任给的2 个字符串A和B,计算出它们的编辑距离d(A,B)。例如,字符串fxpimu和字符串xwrs的编辑距离为5

解决方案 »

  1.   

    1.[x](del) y 删除字符y
    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)
    关键是求可重用的字符以及排序吧
    算法不精通,吃饭去了。。
      

  2.   

    本帖最后由 xuzuning 于 2012-12-01 12:47:12 编辑