文字列で最も長く繰り返されるパターンを見つけるための効率的なアルゴリズムを探しています。
たとえば、次の数字の文字列を考えてみます。
5431428571428571428571428571427623874534
。
ご覧のとおり、142857142857
はこの文字列で数回(少なくとも2回)繰り返される最も長いパターンです。
繰り返される文字列には、総当たりではなく、どんなアイデアも含めるべきではありませんか?
文字列で最も長く繰り返されるパターンを見つけるための効率的なアルゴリズムを探しています。
たとえば、次の数字の文字列を考えてみます。
5431428571428571428571428571427623874534
。
ご覧のとおり、142857142857
はこの文字列で数回(少なくとも2回)繰り返される最も長いパターンです。
繰り返される文字列には、総当たりではなく、どんなアイデアも含めるべきではありませんか?
回答:
[1] Kolpakov、R.&Kucherov、G.(1999)。線形時間で単語の最大繰り返しを見つける。でコンピュータサイエンスの基礎、1999年第40回年次シンポジウム(頁596から604)。IEEE。
142857
、は長いため、最長ではありませ142857142857
ん。質問を編集して、「繰り返しパターン」の意味を明確にする必要があると思います。