[英]Efficient Data Structure for “Model Number” Sub string Searching
我們有一個問題,我們想對大量[1MM-10MM]的字符串(“型號”)進行子字符串搜索,以快速識別包含給定子字符串的任何“型號”。 型號是短字符串,例如:
目標很簡單,給定一個子字符串,可以迅速找到所有與該子字符串匹配的型號。 例如(在上述型號的整體上),如果我們搜索字符串“ EW”,則該函數將返回GLEW1874和ABB1924DEW(因為它們都包含子字符串EW)。
數據結構還需要能夠支持快速搜索以給定子字符串開頭和/或以給定子字符串結尾的型號。 例如,我們需要能夠快速進行WTW ... B之類的搜索(與WTW9400PDQB匹配,因為它以WTW開頭並以B結尾)
我正在尋找的是一種內存中的數據結構,它可以非常有效地完成這些搜索。 理想情況下,在Java中也已經有一個不錯的(簡單)實現,可以在我們可以使用的地方完成。 簡單(快速)優於復雜(略快)。 天真的算法(僅循環遍歷所有零件號在每個零件號上進行子字符串搜索)對於我們的目的來說太慢了,我們正在尋找更快的東西(假設可以)
那么,針對該問題的教科書數據結構/算法是什么?
您需要的是后綴樹 。 我不推薦使用Java庫,因此您可能必須自己實現
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.