baidu 字串相似度問題

2021-06-10 06:53:42 字數 710 閱讀 9940

兩個字串通過增刪改變成一樣的字串,需要操作的最小步驟數

這是程式設計之美中的一道題

書上的解法是採用遞迴演算法,分幾種情況

函式原型是int calculatedistance(int a, int abegin, int aend, int b, int bbegin, bend);

如果a[abegin] == b[bbegin]

calculatedistance(a, abegin+1, aend, b, bbegin+1, bend );

如果不相等的話又分三種情況,取最小值

t1 = calculatedistance(a, abegin+1, aend, b, bbegin+2, bend );

t2 = calculatedistance(a, abegin+2, aend, b, bbegin+1, bend );

t3 = calculatedistance(a, abegin+2, aend, b, bbegin+2, bend );

這樣做的話會存在較多的重複計算,當時我沒想起來這種演算法,感覺這個是要用動態規劃,並且和最長公共子串行有點像,因為除了完全相同的部分,其餘部分要改修改的,完全相同的對問題結果沒有貢獻,並且要求最小步驟數,所以也就是找個最長公共序列,和這個是對應的,因此先求最長公共子串行,之後兩個序列對比,如果相等直接過,說明是公共序列的內容,如果有乙個和公共序列的相同,那麼另乙個就需要刪除等操作,對結果做出貢獻。

字串相似度

這個演算法 於網上,但忘記了出處,對其使使用了 issame封裝,然後用在了自己的網頁資料抓取 中。求解兩個字串的相似度int calculatestringdistance const string stra,const string strb intret c lena 1 lenb 1 for...

字串相似度

最近要對字串進行聚類,這些字串都是 的輸出,嘗試了幾種字串相似度度量的方法 levenshtein距離 字串核函式 lcs max len str1,str2 其中相似度用公式distance 1.0 similarity 1轉換為距離.使用層次聚類方法.下面是要聚類的字串 points aabbc...

字串相似度

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