import unittest
class RepeatTest(unittest.TestCase):
def testSimpleRepeat(self):
self.assertEqual(3, getRepeatLength("3453453453"))
self.assertEqual(2, getRepeatLength("121212121212121"))
self.assertEqual(1, getRepeatLength("1111111111111111"))
self.assertEqual(0, getRepeatLength("112344512343234"))
self.assertEqual(4, getRepeatLength("0000123412341234"))
def getRepeatLength(s):
import re
f_len = 0
try:
p = re.compile('0+')
r = p.sub('', s[-100:])
if (len(r) == 0): return 0
while (len(s) != 0):
for i in xrange(1, len(s)/2+1):
p = re.compile('(' + s[:i] + ')+')
r = p.sub('', s)
if (len(r) == 0 or (i < len(r) and s[:len(r)] == r)):
#f_len = len(s[:i])
#return f_len
return len(s[:i])
s = s[1:]
return f_len
except:
return 0
#unittest.main()
max = 0
r = 0
for i in range(1, 1001):
if (i % 10 == 0):
print "try..", i
now = getRepeatLength(str(1 * 10**100 / i))
if (now != 0 and max < now):
print " max changed.. ", i, now
max = now
r = i
print r, max