最小编辑代价(牛客)
发布日期:2021-05-06 11:07:59 浏览次数:23 分类:精选文章

本文共 1114 字,大约阅读时间需要 3 分钟。

            以下是实现两个字符串最小编辑成本的动态规划算法:
类 Solution:
def minEditCost(self, str1, str2, ic, dc, rc):
# 初始化动态规划表
dp = [[0] * (len(str2)+1) for _ in range(len(str1)+1)]
# 填充边缘情况
for i in range(1, len(str1)+1):
dp[i][0] = dp[i-1][0] + dc
for j in range(1, len(str2)+1):
dp[0][j] = dp[0][j-1] + ic
# 填充主体部分
for i in range(1, len(str1)+1):
for j in range(1, len(str2)+1):
if str1[i-1] == str2[j-1]:
dp[i][j] = min(dp[i-1][j-1], dp[i][j-1] + ic, dp[i-1][j] + dc)
else:
dp[i][j] = min(dp[i-1][j-1] + rc, dp[i][j-1] + ic, dp[i-1][j] + dc)
# 返回最小编辑成本
return dp[-1][-1]

以上代码实现了对两个字符串的最小编辑成本计算,采用动态规划方法来解决问题。算法通过维护一个二维数组dp,记录不同子序列之间的编辑成本,最终返回两个字符串的最小编辑成本。

上一篇:牛客——二叉树根节点到叶节点和为指定的数路径
下一篇:机器学习面试(六)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月28日 02时12分40秒