您可能会发现后缀树很有用(它们在概念上与Tries类似)。
每个字符串都以^开头,以$结尾,并创建所有附加字符串的后缀树。空间使用量将为O(n),可能会比您尝试使用的空间差。
如果现在需要搜索字符串s,则可以在O(| s |)时间内轻松完成,就像trie一样,获得的匹配项将是子字符串匹配项(基本上,您将匹配某个字符串的后缀)。
抱歉,我没有方便的Java实现参考。
找到了一个有用的stackoverflow答案:通用后缀树Java实现
其中包含:http : //illya-keeplearning.blogspot.com/2009/04/suffix-
trees-java-ukkonens-algorithm.html
依次具有:源代码:http :
//illya.yolasite.com/resources/suffix-
tree.zip
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)