簡體   English   中英

用於“型號”子字符串搜索的有效數據結構

[英]Efficient Data Structure for “Model Number” Sub string Searching

我們有一個問題,我們想對大量[1MM-10MM]的字符串(“型號”)進行子字符串搜索,以快速識別包含給定子字符串的任何“型號”。 型號是短字符串,例如:

  1. ABB1924DEW
  2. WTW9400PDQB
  3. GLEW1874

目標很簡單,給定一個子字符串,可以迅速找到所有與該子字符串匹配的型號。 例如(在上述型號的整體上),如果我們搜索字符串“ EW”,則該函數將返回GLEW1874和ABB1924DEW(因為它們都包含子字符串EW)。

數據結構還需要能夠支持快速搜索以給定子字符串開頭和/或以給定子字符串結尾的型號。 例如,我們需要能夠快速進行WTW ... B之類的搜索(與WTW9400PDQB匹配,因為它以WTW開頭並以B結尾)

我正在尋找的是一種內存中的數據結構,它可以非常有效地完成這些搜索。 理想情況下,在Java中也已經有一個不錯的(簡單)實現,可以在我們可以使用的地方完成。 簡單(快速)優於復雜(略快)。 天真的算法(僅循環遍歷所有零件號在每個零件號上進行子字符串搜索)對於我們的目的來說太慢了,我們正在尋找更快的東西(假設可以)

那么,針對該問題的教科書數據結構/算法是什么?

您需要的是后綴樹 我不推薦使用Java庫,因此您可能必須自己實現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM