有效查询公共子串

时间:2013-03-21 11:11:18

标签: algorithm data-structures

我有一个对象的表示例如 SubObjectsH1H2F1F2 其中每个H anf F代表一个特定的较小对象。我希望能够轻松查询所有具有3个子对象的表示 例如,H1,H4,F1,F2将被退回,甚至H1,H2,F1,F5。当我查询具有H1H2F1F2共同的3个字符串表示部分的对象。

字符串位置很重要因此H2H1F1F2H1H2,{{1}不同}},F1

蛮力行动计划是不可能的,因为我有数千个这样的字符串可供比较。想通过使用后缀树来解决这个问题。

我可以使用更有效的数据结构来解决问题吗?

1 个答案:

答案 0 :(得分:0)

正如我在我的问题中所述,我使用了后缀树。这样的树可以让我非常快速地查询树的特定子串并返回包含该特定子串的所有对象。我不知道是否存在更好的解决方案,但后缀树对我的问题很有效。 suffix trees: