minEditCost

2D-DP; Medium;

2.题目描述

给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,请输出将str1编辑成str2的最小代价。示例1

输入

复制

返回值

复制

示例2

输入

复制

返回值

复制

3. 思路

  1. 2D dp

  2. construct a 2D dp table, columns represents str1 and rows represent str2

  3. table 大小为 (len(str2)+1) * (len(str1)+1) 记上两个string都是空的情况

  4. 由于要把str1变成str2,所以在每一行往右操作都是 + deletion cost, 每一列往下都是 + insertion cost

  5. 初始第一行和第一列后,从dp[1][1]位置,即str1, str2的第一个char开始找最小的cost

  6. 把dp[i-1][j-1], dp[i-1][j], dp[i][j-1] 的更新后的结果的最小值作为dp[i][j]的结果

  7. Time: O(n*m) for iterating and updating table, n = len(str1), m= len(str2)

  8. Space: O(n*m)

4. Coding

Last updated

Was this helpful?