Прикреплённый файл «mccme101_ciklstr.py»

Загрузка

   1 #!/usr/bin/env python
   2 # coding: utf
   3 '''
   4 Строка S была записана много раз подряд, после чего из получившейся строки взяли подстроку и дали вам. Ваша задача определить минимально возможную длину исходной строки S. Длина подстроки не превышает 50000 символов.
   5 '''
   6 
   7 mx=50000
   8 s=raw_input()
   9 # Введена длина подстроки, необходимо её сгенерировать
  10 if s[0] in "0123456789":
  11     import random
  12     SET="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
  13     s="".join([random.choice(SET) for i in xrange(int(s))])
  14 
  15 S=(s*(2+mx/len(s)))[3:mx]
  16 L=len(S)
  17 print len(s)
  18 
  19 # Гипотеза о длине подстроки
  20 for i in xrange(1,L):
  21     Match=True
  22     # Проверка каждого символа в подстроке
  23     for k in xrange(i):
  24         # Проверка символа по всей длине
  25         for j in xrange(k,L,i):
  26             if S[k]!=S[j]:
  27                 Match=False
  28                 break
  29         if not Match: break
  30     if Match: break
  31 print i
  32 
  33 # С использованием split
  34 for i in xrange(2,L):
  35     trunk=S.split(S[:i])
  36     if "".join(trunk) == trunk[-1] and S[:i].startswith(trunk[-1]):
  37         break
  38 print i

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.