次の問題を解決しようとしています。
任意の長さの文字列が与えられた場合、その文字列内で複数回出現し、重複のない最長の部分文字列を見つけます。
たとえば、入力文字列がABCABCAB
の場合、正しい出力は になりますABC
。とは言えABCAB
ません。これは、2 つの部分文字列が重複する場所で 2 回しか発生しないためです。これは許可されていません。
数千文字を含む文字列について、これを合理的に迅速に解決する方法はありますか?
(そして、誰かが尋ねる前に、これは宿題ではありません。リンデンマイヤー フラクタルのレンダリングを最適化する方法を検討しています。単純なタートル グラフィックス システムを使用して高い反復レベルで描画するには、過度の時間がかかる傾向があるためです。)