scala文字編輯距離演算法實現

2021-08-14 01:29:19 字數 640 閱讀 1267

編輯距離,又稱levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。

許可的編輯操作包括:將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。

例如將eeba轉變成abac:

1. eba(刪除第乙個e)

2. aba(將剩下的e替換成a)

3. abac(在末尾插入c)

所以eeba和abac的編輯距離就是3

俄羅斯科學家vladimir levenshtein在2023年提出這個概念。

**實現:

def editdist(s1:string, s2:string):int =

for(j <- 0.until(s2_length))

var cost = 0

for(j <- 1.until(s2_length))else

matrix(i)(j)=math.min(math.min(matrix(i-1)(j)+1,matrix(i)(j-1)+1),matrix(i-1)(j-1)+cost)}}

matrix(s1_length-1)(s2_length-1)

}

文字編輯距離

題目 給定乙個字串word。再給定n個字串s1,s2,sn.求出s中和word相似度最小的字串。注意 兩個字串的相似度是,修改s1或s2的中的任一字元,一次只能改一次,或者是在s1或s2的任一位置增加乙個字元,一次只能增加一次。是的最後s1 s2.比如 helo hea。相似度為2。步驟分別是去掉o...

文字編輯距離演算法實現(文字相似度比較)

演算法簡介 levenshtein distance,又稱編輯距離,指的是兩個字串之間,由乙個轉換成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。編輯距離的演算法是首先由 科學家levenshtein提出的,故又叫levenshtein di...

文字編輯距離計算,簡單清晰

編輯距離的作用主要是用來比較兩個字串的相似度的 基本的定義如下所示 編輯距離,又稱levenshtein距離 萊文斯坦距離也叫做edit distance 是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數,如果它們的距離越大,說明它們越是不同。許可的編輯操作包括將乙個字元替換成另乙個字元,插...