兩個字串的最短串編輯距離

2021-08-25 20:08:56 字數 416 閱讀 2468

假定有兩個字串s1,s2,求出由s1變為s2所需要花費的最小代價。刪除乙個字元的代價為1,增加乙個字元的代價為2,替換乙個字元的代價為2。比如由「abc」變為「abe」,你可以刪除c,然後新增e,這樣代價是3;也可以將c替換成e,這樣代價是2,顯然2比較小。具體串編輯問題請參閱演算法書籍。本**運用的是動態規劃的思路,這裡狀態轉移方程略去,如果需要給出具體的編輯軌跡,那需要用乙個二維陣列來記錄,有興趣的讀者可以寫下。(**沒有進行全面的測試,「可能」存在問題)

public class test 

public int editstr(string s1,string s2,int n,int m)

else }

public static void main(string args)

}

兩個字串的編輯距離 動態規劃

字串的編輯距離,又稱為levenshtein距離,由俄羅斯的數學家vladimir levenshtein在1965年提出。是指利用字元操作,把字串a轉換成字串b所需要的最少運算元。其中,字元操作包括 1 刪除乙個字元 2 插入乙個字元 3 修改乙個字元 3 如果不一樣,那麼必定要經過一次操作 編輯...

計算兩個字串的距離

題目描述 對於不同的字串,希望能夠有辦法判斷其相似程度。定義了如下方法來把兩個不同的字串變得相同,具體的操作方法為 1.修改乙個字元 如把 a 替換為 b 2.增加乙個字元 如把 abc 變換為 aabc 3.刪除乙個字元 如把 abc 變換為 bc 比如,對於 abc 和 bc 兩個字串來說,可以...

求兩個字串的距離

給定兩個長度相等的,由小寫字母組成的字串s1和s2,定義s1和s2的距離為兩個字串有多少個位置上的字母不相等。現在牛牛可以選定兩個字母x1和x2,將s1中的所有字母x1均替換成x2。x1和x2可以相同 牛牛希望知道執行一次替換之後,兩個字串的距離最少為多少。x1和x2是自己求的,未知 輸入 aaa ...