题目描述
Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in either string.
Example 1:
1 | Input: "sea", "eat" |
动态规划题,和之前找两个词之间的距离那道题目很相近。令dp[i][j]为第一个字母从0到i和第二个字母从0到j的需要删除的最少次数。状态转移方程为:
就是当对于word1的索引i,word2的索引j来说,如果word1[i] == word2[j]的话,dp[i][j]就是dp[i-1][j-1],因为此时只需要根据dp[i-1][j-1]的方式就可以处理dp[i][j],否则,则只需要判断dp[i-1][j]和dp[i][j-1]哪个小就可以了,因为只需要对word1或word2删除最后一个元素就可以回到前面的两个状态。
代码实现
1 | class Solution { |