1

我正在寻找具有模仿 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']
>>> []

我从这个网站上举了这个例子: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}))

有什么提示吗?

4

0 回答 0