私は、バイナリ文字列をデータ構造体(insert関数)に格納する最も効率的な方法を探しています。文字列を取得するときに、指定された文字列の循環文字列が私の構造体にあるかどうかをチェックします。サイクリック文字列を検索
入力文字列をTrieに格納することを考えましたが、文字列の循環文字列がTrieに挿入されたかどうかを判断しようとすると、| s |可能なすべての循環文字列をTrieで検索します。
場所の複雑さはTrieのようになりますが、それを効率的に行う方法はありますか?
注:私は、たとえば1011
のすべての巡回の文字列であることを私は意味の文字列の巡回文字列を言うときは:0111, 1110, 1101, 1011
これが2文字以上のアルファベットの場合、文字値の順序にかかわらず同じ結果を生成するハッシュ関数を作成すると、ほとんどの不一致を素早く排除できます。 –
@ C.Evenhuis:いいえ、バイナリ文字列のみで作業しています。 – user550413
すべての挿入を先に行いますか?または、挿入と参照を混在させますか? – templatetypedef