From a84c340855b97df8e8c49cf232b0394a8022a1f0 Mon Sep 17 00:00:00 2001 From: Jean N'dah Kouagou Date: Sun, 31 May 2020 19:55:03 +0000 Subject: [PATCH] day31 --- MayChallenge_LeetCode.ipynb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/MayChallenge_LeetCode.ipynb b/MayChallenge_LeetCode.ipynb index 5f1545f..f645969 100644 --- a/MayChallenge_LeetCode.ipynb +++ b/MayChallenge_LeetCode.ipynb @@ -871,6 +871,36 @@ " return sorted(points, key=distance)[0:K]" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Edit Distance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class Solution:\n", + " def minDistance(self, word1: str, word2: str) -> int:\n", + " word1, word2 = \"!\" + word1, \"!\" + word2\n", + " n_1, n_2 = len(word1), len(word2)\n", + " dp = [[0] * n_2 for _ in range(n_1)]\n", + "\n", + " for i in range(n_1): dp[i][0] = i\n", + " for j in range(n_2): dp[0][j] = j\n", + "\n", + " for i in range(1, n_1):\n", + " for j in range(1,n_2):\n", + " Cost = (word1[i] != word2[j])\n", + " dp[i][j] = min(dp[i-1][j] + 1, dp[i][j-1] + 1, dp[i-1][j-1] + Cost)\n", + "\n", + " return int(dp[-1][-1]) " + ] + }, { "cell_type": "code", "execution_count": null,