私は、最も長く繰り返された部分文字列を見つけなければならないphpスクリプトに取り組んでいます。このサフィックスツリーのことを見つけました。Ukkonnen のアルゴリズムを実装しようとしていますが、ツリーを拡張するタイミングと方法がわかりません。
ツリーにない新しい文字があっても大丈夫ですが、新しいノードを作成し、そのルートから egde を作成する必要があります。しかし、エッジを分割する必要があるかどうかはどうすればわかりますか?
私はそれのC++実装を見つけ(リンク)、それをphpに変換しようとしましたが、ほとんど良い結果が得られるため、タイプオが含まれていると思います。問題は、修正しない限り修正できないことですそれを完全に理解し...
Suffix-Trees の説明をたくさん読みましたが、中にはあまり深く入っていないものもあれば、2 番目のセンテンスの後で頭が痛くなるものもあります。
これが私が今持っているコードです: Suffix-tree.php (申し訳ありませんが、このエディターはそれを受け入れることができませんでした) 私はこのサイトを使用して結果を確認しました。
アドバイスをいただければ幸いです...
編集: 上記のサイトで見つかった JavaScript のものから書き直しました。ソースへのリンクは次のとおりです: Suffix-Tree v0.1