codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
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
Private
[
?
]
Run code