在python或C ++中实现良好的开源后缀树实现

时间:2012-11-21 10:07:49

标签: c++ python data-structures tree suffix-tree

我正在寻找具有模仿python词典的友好API的后缀树实现:

import SubstringDict
d = SubstringDict.SubstringDict()
d['foobar'] = 1  
d['barfoo'] = 2
d['forget'] = 3
d['arfbag'] = 4
d['a']
>>> [1, 2, 4]
d['arf']
>>> [2, 4]
d['oo']
>>> [1, 2]
d['food']
>>> []

我从这个网站上采用了这个例子:Suffix Trees in Python 您可能会问:“为什么不使用网站上的实现?” 好吧,显然它在python绑定中有一些内存泄漏,所以我不能将它用于我的大型(120万字符串,大约200 MB)数据集。

我对使用以下API的C ++实现(我可以自己编写python绑定)感到满意:

SuffixTree<int> sf = SuffixTrie<int>();
sf['foobar'] = 1;
sf['barfoo'] = 2;
sf['forget'] = 3;

assetTrue(sf.find('a')==std::vector<int>({1,2}))

任何提示?

0 个答案:

没有答案