583. Delete Operation for Two Strings
Medium
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.
class Solution:
def minDistance(self, word1: str, word2: str) -> int:
# Solution using Longest Common Subsequence
# You can compare this solution with that and it will look exactly same
m = len(word1)
n = len(word2)
arr = [[0 for j in range(n+1)] for i in range(m+1)]
for i in range(1, m+1):
for j in range(1, n+1):
if word1[i-1] == word2[j-1]:
arr[i][j] = 1 + arr[i-1][j-1]
else:
arr[i][j] = max(arr[i-1][j], arr[i][j-1])
common = arr[m][n]
return m-common+n-common
Last updated