function minDistance(word1: string, word2: string): number { const dp: number[][] = Array.from( Array(word1.length + 1), () => Array(word2.length + 1).fill(0), ); for (let i = 1; i <= word1.length; i++) { dp[i][0] = i; } for (let j = 1; j <= word2.length; j++) { dp[0][j] = j; } for (let i = 1; i <= word1.length; i++) { for (let j = 1; j <= word2.length; j++) { if (word1[i - 1] === word2[j - 1]) { dp[i][j] = dp[i - 1][j - 1]; } else { dp[i][j] = Math.min( dp[i - 1][j] + 1, dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1, ); } } } return dp[word1.length][word2.length]; } export default minDistance;