编辑距离及代码实现

简介: 字符串A与B的编辑距离,Edit Distance,是指由A转换为B所需的最少编辑操作次数。编辑操作包括字符的替换、插入与删除。 如kitten(小猫)->sitting(坐):距离为3.kitten-->(k→s)-->sitten--> (e→i)-->sittin-->(g)->sitting 动态规划实现 dp[i][j]表示子串
字符串A与B的 编辑距离,Edit Distance,是指由A转换为B所需的最少编辑操作次数。编辑操作包括字符的替换、插入与删除。
如kitten(小猫)->sitting(坐):距离为3.

kitten-->(k→s)-->sitten--> (e→i)-->sittin-->(g)->sitting

动态规划实现

dp[i][j]表示子串str1[0~i]与子串str2[0~j]的编辑距离。状态转移方程为
str[i]==str2[j]时,dp[i][j]=dp[i-1][j-1];
str[i]≠str2[j]时,dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1;
注意边界情况的处理。

枚举指定字符串编辑距离为n的集合


目录
打赏
0
0
0
0
14
分享
相关文章
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
子数组的解释与专题
子数组的解释与专题
267 0
python实现快速排序算法。
【2月更文挑战第9天】【2月更文挑战第23篇】python实现快速排序算法。
83 0
【动态规划】不同路径,编辑距离题解及代码实现
两题由简单到难得DP问题!助我们拿下DP!
82 0
【双指针、位运算、离散化、区间合并】思路讲解及代码实现
用一篇Blog来讲解下最近学到的双指针、位运算、离散化、区间合并等算法,为日后的刷题打下坚实的基础。
122 0
【位运算问题】Leetcode 136、137、260问题详解及代码实现
此外,任意一个数异或0都为他本身 (这从二进制编码来理解也很好理解,0的二进制编码全为0,任意一个数与其异或不同的就是若干位的1)
126 0
Python实现二分查找算法
Python实现二分查找算法
107 0
C语言(冒泡排序思想及代码实现)(分别用递归和非递归实现斐波拉系数)(数组)(函数)
C语言(冒泡排序思想及代码实现)(分别用递归和非递归实现斐波拉系数)(数组)(函数)
C语言(冒泡排序思想及代码实现)(分别用递归和非递归实现斐波拉系数)(数组)(函数)
【Day24】 LeetCode算法题 (注释详细+解题思路)[43. 字符串相乘 ] [1800. 最大升序子数组和]
学习 (注释详细+解题思路)[43. 字符串相乘 ] [1800. 最大升序子数组和]。
149 0
【Day24】 LeetCode算法题 (注释详细+解题思路)[43. 字符串相乘 ] [1800. 最大升序子数组和]
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等