मैं यह जांचने का एक तरीका ढूंढ रहा हूं कि क्या दिया गया तार पूरे स्ट्रिंग के लिए खुद को दोहराता है या नहीं।
उदाहरण:
[
'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 या अधिक वर्ण के हो सकते हैं, इसलिए प्रत्येक चरित्र के माध्यम से लूपिंग एक पैटर्न बनाने की कोशिश कर रहा है फिर पैटर्न की जाँच करना बनाम बाकी स्ट्रिंग बहुत भयानक लगता है। गुणा करें कि संभावित रूप से सैकड़ों तार और मैं कोई सहज समाधान नहीं देख सकता।
मैंने थोड़ा सा regexes में देखा है और वे तब अच्छे लगते हैं जब आप जानते हैं कि आप क्या देख रहे हैं, या कम से कम पैटर्न की लंबाई की तलाश में हैं। दुर्भाग्य से, मुझे न तो पता है।
मैं कैसे बता सकता हूं कि क्या एक स्ट्रिंग खुद को दोहरा रही है और अगर यह है, तो सबसे कम दोहराव क्या है?