【问题标题】:Efficient Data Structure for "Model Number" Sub string Searching“型号”子字符串搜索的高效数据结构
【发布时间】:2012-11-23 13:41:51
【问题描述】:

我们有一个问题,我们想对大量 [1MM - 10MM] 的字符串(“型号”)进行子字符串搜索,以快速识别包含给定子字符串的任何“型号”。型号是短字符串,例如:

  1. ABB1924DEW
  2. WTW9400PDQB
  3. GLEW1874

目标很简单,给定一个子串,快速找到与该子串匹配的所有型号。例如(在上述型号的范围内),如果我们搜索字符串“EW”,该函数将返回 GLEW1874 和 ABB1924DEW(因为它们都包含子字符串 EW)。

数据结构还需要能够支持快速搜索以给定子字符串开头和/或以给定子字符串结尾的型号。例如,我们需要能够快速进行 WTW...B 之类的搜索(它将匹配 WTW9400PDQB,因为它以 WTW 开头并以 B 结尾)

我正在寻找的是一种内存数据结构,它可以非常有效地进行这些搜索。理想情况下,Java 中也会有一个很好的(简单)实现,我们可以在某个地方使用。简单(和快速)比超级复杂和稍微快一点要好。幼稚的算法(只是遍历所有零件号,对每个零件号进行子字符串搜索)对于我们的目的来说太慢了,我们正在寻找更快的东西(前提是好的)

那么,这个问题的教科书数据结构/算法是什么?

【问题讨论】:

  • 是的,当您花时间帮助人们时,他们甚至不费心为您的答案投票,这非常令人沮丧。

标签: java search substring


【解决方案1】:

您需要的是Suffix Tree。我不知道要推荐的 Java 库,因此您可能必须自己实现一个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 2017-12-02
    • 1970-01-01
    • 2019-04-23
    • 2013-06-21
    • 1970-01-01
    相关资源
    最近更新 更多