編輯距離的java代碼

編輯距離(Edit Distance),也稱為Levenshtein距離,是用來比較兩個字符串之間的相似度的方法。它可以通過一系列的編輯操作將一個字符串轉換為另一個字符串,包括插入、刪除和替換等操作。

以下是一個Java代碼示例,用于計算兩個字符串之間的編輯距離:

public class EditDistance {

? ? public static int editDistance(String word1, String word2) {

? ? ? ? int m = word1.length();

? ? ? ? int n = word2.length();

? ? ? ? // 初始化距離矩陣

? ? ? ? int[][] dp = new int[m + 1][n + 1];

? ? ? ? for (int i = 0; i <= m; i++) {

? ? ? ? ? ? dp[i][0] = i;

? ? ? ? }

? ? ? ? for (int j = 0; j <= n; j++) {

? ? ? ? ? ? dp[0][j] = j;

? ? ? ? }

? ? ? ? // 計算距離矩陣

? ? ? ? for (int i = 1; i <= m; i++) {

? ? ? ? ? ? for (int j = 1; j <= n; j++) {

? ? ? ? ? ? ? ? int cost = (word1.charAt(i - 1) == word2.charAt(j - 1)) ? 0 : 1;

? ? ? ? ? ? ? ? dp[i][j] = Math.min(Math.min(dp[i - 1][j] + 1, dp[i][j - 1] + 1), dp[i - 1][j - 1] + cost);

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return dp[m][n];

? ? }

? ? public static void main(String[] args) {

? ? ? ? String word1 = "kitten";

? ? ? ? String word2 = "sitting";

? ? ? ? System.out.println("編輯距離為:" + editDistance(word1, word2));

? ? }

}

這個示例代碼中的 editDistance() 方法接收兩個字符串作為參數,計算并返回它們之間的編輯距離。該方法使用動態規劃算法實現,時間復雜度為 O(mn),其中 m 和 n 分別是兩個字符串的長度。在這個示例中,我們計算了單詞"kitten"和"sitting"之間的編輯距離。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容