1.实践题目
7-3 编辑距离问题
2.问题描述
设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。 对于给定的字符串A和字符串B,计算其编辑距离 d(A,B)。
3.算法描述
填表,先给第一行赋初值,然后每个格填入它左边,正上方和左上角这三个数的最小值,最后右下角的数即为问题的解。
4.算法时间及空间复杂度分析
时间复杂度为O(n*n),2个for循环;空间复杂度为O(n*n),需要一个辅助数组dis[][]。
5.心得体会
一开始算法出现段错误时很疑惑,后来跟同学一讨论才知道2000*2000的二维数组太大,在之后便参考了课本了算法的改进,用了2*2000的二维数组辅助计算,节省了空间,虽然好像听到别人没有这个问题。总的来说,还是解决了我的一个盲区,也让我对动态规划的理解更深。
原文地址:https://www.cnblogs.com/ex-calibur/p/9917826.html
时间: 2024-11-08 12:12:16