주어진 문자열이 전체 문자열에 대해 반복되는지 여부를 테스트하는 방법을 찾고 있습니다.
예 :
[
'0045662100456621004566210045662100456621', # '00456621'
'0072992700729927007299270072992700729927', # '00729927'
'001443001443001443001443001443001443001443', # '001443'
'037037037037037037037037037037037037037037037', # '037'
'047619047619047619047619047619047619047619', # '047619'
'002457002457002457002457002457002457002457', # '002457'
'001221001221001221001221001221001221001221', # '001221'
'001230012300123001230012300123001230012300123', # '00123'
'0013947001394700139470013947001394700139470013947', # '0013947'
'001001001001001001001001001001001001001001001001001', # '001'
'001406469760900140646976090014064697609', # '0014064697609'
]
스스로 반복되는 줄입니다.
[
'004608294930875576036866359447',
'00469483568075117370892018779342723',
'004739336492890995260663507109',
'001508295625942684766214177978883861236802413273',
'007518796992481203',
'0071942446043165467625899280575539568345323741',
'0434782608695652173913',
'0344827586206896551724137931',
'002481389578163771712158808933',
'002932551319648093841642228739',
'0035587188612099644128113879',
'003484320557491289198606271777',
'00115074798619102416570771',
]
그렇지 않은 사람들의 예입니다.
주어진 문자열의 반복 섹션은 상당히 길 수 있으며 문자열 자체는 500 자 이상이 될 수 있으므로 각 문자를 반복하여 패턴을 작성하려고 시도하고 패턴을 확인하고 나머지 문자열을 확인하는 것은 끔찍한 것처럼 보입니다. 잠재적으로 수백 개의 문자열을 곱하면 직관적 인 솔루션을 볼 수 없습니다.
나는 정규 표현식을 조금 살펴 보았고, 당신이 찾고있는 것을 알거나 적어도 당신이 찾고있는 패턴의 길이를 알 때 좋아 보인다. 불행히도, 나는 둘 다 모른다.
문자열 자체가 반복되는지, 그렇다면 문자열이 가장 짧은 반복 서브 시퀀스인지 어떻게 알 수 있습니까?