我正在寻找在数据结构(插入函数)中存储二进制字符串的最有效方法,然后在获取字符串时我想检查给定字符串的某个循环字符串是否在我的结构中。搜索循环字符串
我想过把输入字符串存储在Trie中,但是当试图确定我现在得到的字符串中是否有一些循环字符串被插入Trie时,意味着要执行| s |在Trie搜索所有可能的循环字符串。
有没有什么办法可以更有效地做到这一点,而地点的复杂性将会像Trie一样?
注:当我说一个字符串,我指的是循环的字符串,例如所有的1011
循环字符串是:0111, 1110, 1101, 1011
如果这是一个多于这两个字符的字母表,我会说创建一个散列函数,无论字符值的顺序如何都会生成相同的结果,因此您可以快速消除大多数不匹配。 –
@ C.Evenhuis:不,我只使用二进制字符串。 – user550413
您是否预先做了所有插入操作?或者你混插插入和查找? – templatetypedef