动态规划:编辑距离问题

时间:2025-02-24 18:01:49

一、问题描述:

设A和B是2个字符串,要用最少的字符操作将字符串A转化为字符串B。这里所说的字符操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串A变换为B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2个字符串A和B,计算出它们的编辑距离d(A,B)。

示例:

输入:

fxpimu

xwrs

输出:

5

 

二、思路分析:

解法一:直接利用求解最长公共子序列的算法求出最长公共子序列的长度,然后使用较长字符串的长度减去最长公共子序列的长度就是所需的最短步骤。

求解最长公共子序列的算法的详解解答见之前的博客文章,这是链接:/weixin_46013401/article/details/109329667

解法二:利用二维数组distance记录求解的过程,利用其下标表示指向不同字符串的元素。

当两个字符元素相等时,distance