18int64_t min_dist(
const std::string word1,
const std::string word2) {
19 if (word1.size() == 0 && word2.size() == 0) {
22 if (word1.size() == 0 && word2.size() != 0) {
25 if (word1.size() != 0 && word2.size() == 0) {
28 int n = word1.size(), w = word2.size();
29 std::vector<std::vector<int>> dp(n + 1, std::vector<int>(w + 1));
30 for (
int i = 0; i <= n; i++) {
34 for (
int i = 0; i <= w; i++) {
37 for (
int i = 1; i <= n; i++) {
38 for (
int j = 1; j <= w; j++) {
39 if (word1[i - 1] == word2[j - 1]) {
40 dp[i][j] = dp[i - 1][j - 1];
42 dp[i][j] = std::min(dp[i - 1][j - 1], std::min(dp[i - 1][j], dp[i][j - 1])) + 1;