① dp 数组的含义是记录字符串 'kitten' 和 'sitting' 中每个子串的编辑距离。

② dp 数组的递推公式为:

dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1, dp[i-1][j-1]+cost)

其中,dp[i][j] 表示字符串 'kitten' 中前 i 个字符与字符串 'sitting' 中前 j 个字符的编辑距离;cost 表示字符串 'kitten' 中第 i 个字符和字符串 'sitting' 中第 j 个字符是否相同,相同则为 0,不同则为 1。

③ 使用上述递推公式可以得到字符串 'kitten' 和 'sitting' 的编辑距离为 3。具体计算过程如下:

dp 数组初始化为:

0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 0 0 0 0 0 0 2 2 0 0 0 0 0 0 3 3 0 0 0 0 0 0 4 4 0 0 0 0 0 0 5 5 0 0 0 0 0 0 6 6 0 0 0 0 0 0

按递推公式依次填充 dp 数组:

0 1 2 3 4 5 6 0 0 1 2 3 4 5 6 1 1 1 2 3 4 5 6 2 2 2 1 2 3 4 5 3 3 3 2 1 2 3 4 4 4 4 3 2 1 2 3 5 5 5 4 3 2 2 3 6 6 6 5 4 3 3 2

最终结果为 dp[6][6]=2+1=3。

动态规划解决近似串匹配:kitten 和 sitting 的编辑距离

原文地址: https://www.cveoy.top/t/topic/oA53 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录