583-delete-operation-for-two-strings¶
Try it on leetcode
Description¶
Given two strings word1
and word2
, return the minimum number of steps required to make word1
and word2
the same.
In one step, you can delete exactly one character in either string.
Example 1:
Input: word1 = "sea", word2 = "eat" Output: 2 Explanation: You need one step to make "sea" to "ea" and another step to make "eat" to "ea".
Example 2:
Input: word1 = "leetcode", word2 = "etco" Output: 4
Constraints:
1 <= word1.length, word2.length <= 500
word1
andword2
consist of only lowercase English letters.
Solution(Python)¶
class Solution:
def minDistance(self, word1: str, word2: str) -> int:
n = len(word1)
m = len(word2)
dp = [0 for _ in range(n + 1)]
for i in range(m + 1):
temp = [0 for _ in range(n + 1)]
for j in range(n + 1):
if i == 0 or j == 0:
temp[j] = i + j
elif word1[j - 1] == word2[i - 1]:
temp[j] = dp[j - 1]
else:
temp[j] = 1 + min(dp[j], temp[j - 1])
dp = temp
return dp[n]