【每日一題】2021年12月17日-72. 編輯距離
阿新 • • 發佈:2021-12-17
給你兩個單詞word1 和word2,請你計算出將word1轉換成word2 所使用的最少運算元。
你可以對一個單詞進行如下三種操作:
插入一個字元
刪除一個字元
替換一個字元
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/edit-distance
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
答案:
//動態規劃 //dp[len1][len2] //初始化、值相等、不相等 class Solution { public int minDistance(String word1, String word2) {int len1 = word1.length(); int len2 = word2.length(); int[][] dp = new int[len1 + 1][len2 + 1]; for(int i = 0; i <= len1; i++) { //到len dp[i][0] = i; } for(int j = 0; j <= len2; j++) { //到len dp[0][j] = j; } for(int i = 1; i <= len1; i++) {for(int j = 1; j <= len2; j++) { //到len if(word1.charAt(i - 1) == word2.charAt(j - 1)) { //字元是-1 dp[i][j] = dp[i - 1][j - 1]; } else { dp[i][j] = 1 + Math.min(dp[i - 1][j], Math.min(dp[i][j - 1], dp[i - 1][j - 1])); } } }return dp[len1][len2]; } }
本文來自部落格園,作者:劉金輝,轉載請註明原文連結:https://www.cnblogs.com/liujinhui/p/15703626.html