2026-06-01 18:12:40 +08:00
|
|
|
#+ANKI_DECK: study_deck_02
|
2026-06-01 17:12:10 +08:00
|
|
|
* TODO 0072. Edit Distance :medium:
|
2026-06-01 02:33:30 +08:00
|
|
|
:PROPERTIES:
|
2026-06-01 17:22:07 +08:00
|
|
|
:NEETCODE: [[file:../../roadmap.org::*0072. Edit Distance][0072. Edit Distance]]
|
2026-06-01 02:33:30 +08:00
|
|
|
:END:
|
|
|
|
|
|
2026-06-01 17:22:07 +08:00
|
|
|
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:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: word1 = "horse", word2 = "ros"
|
|
|
|
|
Output: 3
|
|
|
|
|
Explanation:
|
|
|
|
|
horse -> rorse (replace 'h' with 'r')
|
|
|
|
|
rorse -> rose (remove 'r')
|
|
|
|
|
rose -> ros (remove 'e')
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Example 2:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
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')
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Constraints:*
|
|
|
|
|
|
|
|
|
|
- ~0 <= word1.length, word2.length <= 500~
|
|
|
|
|
|
|
|
|
|
- ~word1~ and ~word2~ consist of lowercase English letters.
|
|
|
|
|
|
2026-06-01 02:39:53 +08:00
|
|
|
** TODO Approach
|
|
|
|
|
Write your approach here.
|
|
|
|
|
|
|
|
|
|
** TODO Python
|
|
|
|
|
#+begin_src python
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution:
|
|
|
|
|
def minDistance(self, word1: str, word2: str) -> int:
|
2026-06-01 02:39:53 +08:00
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** TODO C++
|
2026-06-01 02:33:30 +08:00
|
|
|
#+begin_src cpp
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution {
|
|
|
|
|
public:
|
|
|
|
|
int minDistance(string word1, string word2) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-06-01 02:33:30 +08:00
|
|
|
#+end_src
|