
【已解決】如何用遞歸哈希算法或匹配表算法搜索字符串最后由 思想之翼 于 -4-9 05:37https://zhuanlan.zhihu.com/p/389419957該文闡述字符串搜索算法有樸素算法 Rabin-karp算法(遞歸哈希) Kruth-Morris-Pratt算法(匹配表),這三種算法,時空復雜度猶如云泥之別。文章結論:由于在文本字符串中遍歷時,不管模式字符串多長,每次計算量只涉及一次舊值的去除和一次新值的添加,Rabin Karp算法最適合用于模式字符串非常長的情況,比如長句子在論文中的查重。我曾用VBS代碼解決類似字符串匹配問題,運行速度之慢,難于言表。限于網絡難以搜尋到類似參考代碼,故特舉例,懇請各位老師指點(不拘泥于上述列舉算法)。例:文本A.txt 記錄字符串WADCBADCBA1.首先,讀取A.txt文本字符串,并反轉文本字符串為:ABCDABCDAW2.其次,始終以A為起點,選擇模式字符串。本例中,ABCDA 在文本字符串中存在2個及以上,且為最長相同字符串,故確定 ABCDA 為模式字符串。3.然后,在文本字符串中,提取模式字符串的前綴。4.結果:本例提取的前綴為D,寫入文本B.txt;如有多個模式字符串的前綴,則不去重,依次豎排(另起一行)寫入文本B.txt。

