Lempel-Ziv 圧縮を実装していて、疑問が頭に浮かびました。
「辞書」と文字列が与えられます。辞書に含まれている、文字列の最長のプレフィックスを計算できるようにしたいと考えています。
それは文字列を与えられます:
0 : AABB
1 : ABA
2 : AAAB
およびクエリ文字列 'AABBABA' '0' を返すルックアップを実行できるようにしたいと考えています。これは、プレフィックスの長さに比例して時間内に実行する必要があります。
次に、新しい接頭辞「AABBAB」を辞書に一定時間で追加できるようにしたいと考えています。
これを行うための標準的で簡単な方法/アルゴリズムはありますか?
私の最初のアイデアは、ポインターのリストを使用して標準の n 方向ツリーを構築し、これを検索することでしたか?