字串編輯距離

2021-08-15 17:56:34 字數 1192 閱讀 2346

給出兩個單詞word1和word2,寫乙個函式計算出將word1 轉換為word2的最少操作次數。

你總共三種操作方法:

1、插入乙個字元

2、刪除乙個字元

3、替換乙個字元

格式:輸入行輸入兩個字串 word1 和 word2,最後輸出將 word1 轉換為 word2的最少操作次數

。樣例輸入

word1 = "mart" 

word2 = "karma"

樣例輸出

3

動態規劃演算法即可。''k

arma

''012

345m

1123

34a2

2123

3r33

2123

t443

223設i為橫座標('',k,a,r,m,a)代表陣列word2,j為縱座標('',m,a,r,t)代表陣列word1

當i==0&&j==0時,編輯距離就是0

當i==0&&j!=0時,編輯距離就是j

當i!=0&&j==0時,編輯距離就i

當i!=0 &&j!=0時,分為兩種情況

1、word2[i] == word1[j],則最優解是min

2、word2[i] != 

word1[j],則最優解是min

**如下:

package suanfa;

public class editlength

public static int editlength(string str1, string str2)

for (int i = 0; i < chararr2.length + 1; i++)

for (int i = 1; i < chararr1.length + 1; i++) else

}} return map[chararr1.length][chararr2.length]; }

public static int min(int a, int b, int c)

if (b <= a && b <= c)

if (c <= a && c <= b)

return a;

}}

編輯字串距離

題目 題意 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另 乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪 除乙個字元。例如將kitten轉化成sitting sitten k s sittin ...

字串編輯距離

題目描述 給定乙個源串和目標串,能夠對源串進行如下操作 在給定位置上插入乙個字元 替換任意字元 刪除任意字元 寫乙個程式,返回最小運算元,使得對源串進行這些操作後等於目標串,源串和目標串的長度都小於2000。關於字串最短編輯距離的解題思路 給定相關資料的定義 mep i j 表示源字串source ...

字串編輯距離

題目 給定乙個源串和目標串,能夠對源串進行如下操作 1.在給定位置上插入乙個字元 2.替換任意字元 3.刪除任意字元 寫乙個程式,返回最小運算元,使得對源串進行這些操作後等於目標串,源串和目標串的長度都小於2000。思路 如果有兩個串 a xabcdae 和 b xfdfa,它們的第乙個字元是相同的...