2

我有一长串任意字符串,我想确定我给定的字符串“ABADCAFE”是否以我列表中的任何字符串开头。是否有一个图书馆类可以合理有效地为我做到这一点?

(我想这很像正则表达式构建的状态机,但我不认为编写正则表达式是去这里的方式 - 我的列表太长了)

4

2 回答 2

3

您正在寻找的可能是 Patricia Tree 或 Radix Tree:http ://en.wikipedia.org/wiki/Radix_tree

Apache Commons Collections 和 Google Collections Library 似乎具有相同的实现:http ://code.google.com/p/patricia-trie/

于 2010-08-26T20:11:36.247 回答
0

我不认为这里有什么神奇的算法可以给你超高的效率;毕竟,算法必须查看每个字符串。构建有限状态机或基数树,或者使用 foreach——它们在字符串数量上都是线性的,对于这个应用程序来说完全一样。

于 2010-08-26T20:59:24.770 回答