AlgoLounge

Edit Distance

hard

Given two strings word1 and word2, return the minimum number of operations required to convert word1 to word2.

You have the following three operations permitted on a word:

  • Insert a character
  • Delete a character
  • Replace a character

Examples

Example 1

Input:  word1 = "horse", word2 = "ros"
Output: 3

horse → rorse (replace 'h' with 'r') → rose (delete 'r') → ros (delete 'e')

Example 2

Input:  word1 = "intention", word2 = "execution"
Output: 5

Example 3

Input:  word1 = "", word2 = "abc"
Output: 3

Insert three characters.

Constraints

  • 0 <= word1.length <= 500
  • 0 <= word2.length <= 500
  • word1 and word2 consist of lowercase English letters
TypeScript
Loading editor…
List of test cases (10)
Case 1
word1 = "horse"
word2 = "ros"
Case 2
word1 = "intention"
word2 = "execution"
Case 3
word1 = ""
word2 = "abc"
Case 4
word1 = "abc"
word2 = ""
Case 5
word1 = ""
word2 = ""
Case 6
word1 = "abc"
word2 = "abc"
Case 7
word1 = "a"
word2 = "b"
Case 8
word1 = "kitten"
word2 = "sitting"
Case 9
word1 = "sunday"
word2 = "saturday"
Case 10
word1 = "pneumonoultramicroscopicsilicovolcanoconiosis"
word2 = "ultramicroscopically"