求兩個字串的相似度(或距離)

2021-06-01 01:28:57 字數 368 閱讀 5996

兩個字串距離和相似度的定義:

通過修改、增加和刪除操作,使兩個字串變的相等,所做的操作次數為兩個字串的距離,距離加1的倒數為相似度。

例如:a = "abeg";

b = "cdeg";

通過更改a中的ab=>cd使兩個字串相等,兩個操作,距離為2。

求距離的**如下:

int caldistance(char *a, char *b)

if(*b == '\0')//如果b結束了,則可以通過給a增加strlen(a)個字元使其相等。

if(*a == *b)//如果這兩個字元相等,則考慮後面的。

else//如果這兩個字元不相等,則可有三種操作使其相等,取所需操作最少的那個。}

求兩個字串的距離

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

比較兩個字串的相似度

最近在做演算法作業,需要比較兩個字串的相似度,並且返回相同的元素所佔的百分比。如果讓我自己做的話,思路是把兩個字串分別轉化為列表,然後在列表中解決掉。new i for i,j in zip a,b if i j ratio 2.0 len new len a len b seq difflib.s...

計算兩個字串的距離

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