All problems
HardDp

Edit Distance

googleamazonmetamicrosoftbloomberglinkedinuber

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

Example 1:

Input: word1 = "horse", word2 = "ros"
Output: 3
Explanation:
horse -> rorse (replace 'h' with 'r')
rorse -> rose (remove 'r')
rose -> ros (remove 'e')

Example 2:

Input: word1 = "intention", word2 = "execution"
Output: 5
Explanation:
intention -> inention (remove 't')
inention -> enention (replace 'i' with 'e')
enention -> exention (replace 'n' with 'x')
exention -> exection (replace 'n' with 'c')
exection -> execution (insert 'u')

Example 3:

Input: word1 = "", word2 = "abc"
Output: 3
Explanation: Insert 'a', 'b', and 'c' into the empty string.

Examples

Example 1

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

Output: 3

Explanation: horse -> rorse (replace 'h' with 'r') -> rose (remove second 'r') -> ros (remove 'e'). Three operations total.

Example 2

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

Output: 5

Explanation: Five operations: remove 't', replace 'i' with 'e', replace first 'n' with 'x', replace second 'n' with 'c', insert 'u'.

Constraints

  • -0 <= word1.length, word2.length <= 500
  • -word1 and word2 consist of lowercase English letters

Optimal Complexity

Time

O(m * n)

Space

O(m * n)

One problem, two ways to prep

Choose between solo practice and interview simulation

Practice Mode keeps things simple with code + tests. AI Interview Mode adds voice, pressure, and a post-round score summary.