解题思路
- 使用DP动态规划,dp[i][j]表示word1中的前i个字符与word2中的前j个字符的距离;
- dp[i][j]的可能取值如下:
- word1插入一个字符:dp[i][j-1] + 1;
- word1删掉一个字符:dp[i-1][j] + 1;
- 两字符串最后一位不相同,则替换word1的最后一个:dp[i-1][j-1] + 1;
- 如果相同,则不需要操作:dp[i][j];
- DP取上述情形的最小值。
代码
1 | class Solution |
面向工资编程
- 使用DP动态规划,dp[i][j]表示word1中的前i个字符与word2中的前j个字符的距离;
- dp[i][j]的可能取值如下:
- word1插入一个字符:dp[i][j-1] + 1;
- word1删掉一个字符:dp[i-1][j] + 1;
- 两字符串最后一位不相同,则替换word1的最后一个:dp[i-1][j-1] + 1;
- 如果相同,则不需要操作:dp[i][j];
- DP取上述情形的最小值。
1 | class Solution |