冒頭から繰り返しを含む文字列strに対し、
最長の繰り返し部分をstr_a、
繰り返しの回数をn(>1)、
余りをstr_bとします。
(すなわち、
str == str_a * n + str_b
が真になるstr_a, n, str_bのうち
str_aの長さが最も長くなる
str_a, n, str_b
を解とします。)
例1)
str = '123312330'
なら、
str_a = '1233',
n = 2
str_b = '0'
例2)
str = '1233123301233123301233'
なら、
str_a = '123312330',
n = 2
str_b = '1233'
例3)
str = '123312331233012331233123312331233'
なら、
str_a = '1233',
n = 3
str_b = '012331233123312331233'
例4)
str = '1233123312331233012331233123312331233'
なら、
str_a = '12331233',
n = 2
str_b = '012331233123312331233'
strが与えられたとき、
このようなstr_a, n, str_bを返すような
コードを書いていただけないでしょうか?
なお、メタ文字列の知識が少ない初心者(私を含める)
にとっても分かりやすい解説をつけていただければ
なお幸いです。
回答2件
あなたの回答
tips
プレビュー