【发布时间】:2011-02-01 16:50:26
【问题描述】:
问题:提供了一个大的静态字符串列表。由数据和通配符元素(* 和 ?)组成的模式字符串。这个想法是返回所有匹配模式的字符串 - 很简单。
当前解决方案:我目前正在使用线性方法扫描大列表并将每个条目与模式进行通配。
我的问题:是否有任何合适的数据结构可以存储大列表以使搜索的复杂度小于 O(n)?
也许类似于 suffix-trie?我也考虑过在哈希表中使用二元组和三元组,但是根据返回的单词列表和模式的合并来评估匹配所需的逻辑是一场噩梦,而且我不相信它是正确的接近。
【问题讨论】:
-
字符串是由单词组成的,模式是基于单词的吗?如果是这样,您可以使用大量信息检索技术来加快搜索速度——如果您支付最初索引它的 O(N) 成本。最好的部分是有很多库。
-
可以*,?元素带括号,如 wild(card)?
标签: string search design-patterns dfa glob