Форум сайта python.su
Очень трудно мне понять всю семантику задачи сией(
Прикреплённый файлы:
APT_#3_Repeated Substrings.pdf (157,2 KБ)
Офлайн
Вам нужно объяснение/перевод или просто решение?
Задача настолько простая, что даже как-то стыдно за нее +100 получать.
Перевод: в строке длиной до 50 символов найти самую длинную цепочку символов, которая повторяется, но не пересекается с предыдущей аналогичной цепочкой, например для “ABCDABCFG”, ответ будет “ABC”.
Только и всего :D
Офлайн
NataС английским у меня проблем нет, а вот с питоном имеются нужно просто решение!)
Вам нужно объяснение/перевод или просто решение?Задача настолько простая, что даже как-то стыдно за нее +100 получать.Перевод: в строке длиной до 50 символов найти самую длинную цепочку символов, которая повторяется, но не пересекается с предыдущей аналогичной цепочкой, например для “ABCDABCFG”, ответ будет “ABC”. Только и всего
Офлайн
def foo(text): lenght = len(text) k = lenght // 2 while k: for i in range(lenght - k * 2 + 1): txt = text[i:k+i] if text[k+i:].find(txt) != -1: return txt k -= 1 print(foo('ABCDABCFG'))
Офлайн
>>> import re >>> s="ABC .DABC .FG" >>> for i in range(1, len(s)): ... word = re.search("("+("[\w\s.]"*i)+").*\\1", s) ... if not word: ... break ... out=word.group(1) ... >>> print out ABC . >>>
py.user.nextDone.
Пробелы и точки тоже нужно рассматривать
Отредактировано Nata (Окт. 18, 2014 09:02:52)
Офлайн
def longestRepeat(source): def sliding_search(back, front): if front: if back in front: return back return sliding_search(back[1:] + front[0], front[1:]) def reducing_search(back, front): if back: return sliding_search(back, front) or reducing_search(back[:-1], back[-1] + front) return '' return reducing_search(source, '')
Офлайн
dimy44def foo(text):
[guest@localhost flong]$ python3 -mdoctest flong.test
**********************************************************************
File "flong.test", line 21, in flong.test
Failed example:
f('')
Expected:
''
Got nothing
**********************************************************************
File "flong.test", line 24, in flong.test
Failed example:
f('a')
Expected:
''
Got nothing
**********************************************************************
1 items had failures:
2 of 16 in flong.test
***Test Failed*** 2 failures.
[guest@localhost flong]$
Nata>>> import re
[guest@localhost flong]$ python3 -mdoctest flong.test
**********************************************************************
File "flong.test", line 11, in flong.test
Failed example:
f('This is a test.')
Expected:
'is '
Got:
'is'
**********************************************************************
File "flong.test", line 14, in flong.test
Failed example:
f('Testing testing 1 2 3.')
Expected:
'esting '
Got:
'esting'
**********************************************************************
File "flong.test", line 17, in flong.test
Failed example:
f('The quick brown fox jumps over the lazy dog.')
Expected:
'he '
Got:
'he'
**********************************************************************
File "flong.test", line 33, in flong.test
Failed example:
f('..')
Expected:
'.'
Got:
''
**********************************************************************
1 items had failures:
4 of 16 in flong.test
***Test Failed*** 4 failures.
[guest@localhost flong]$
kamisamaЧистенько всё прошло.def longestRepeat(source):
Отредактировано py.user.next (Окт. 18, 2014 01:21:09)
Офлайн
def foo(text): lenght = len(text) k = lenght // 2 while k: for i in range(lenght - k * 2 + 1): txt = text[i:k+i] if text[k+i:].find(txt) != -1: return txt k -= 1 return ''
Офлайн