Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 17, 2014 15:35:42

oxxxymiron
Зарегистрирован: 2014-10-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

Очень трудно мне понять всю семантику задачи сией(

Прикреплённый файлы:
attachment APT_#3_Repeated Substrings.pdf (157,2 KБ)

Офлайн

#2 Окт. 17, 2014 16:23:30

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

Вам нужно объяснение/перевод или просто решение?
Задача настолько простая, что даже как-то стыдно за нее +100 получать.

Перевод: в строке длиной до 50 символов найти самую длинную цепочку символов, которая повторяется, но не пересекается с предыдущей аналогичной цепочкой, например для “ABCDABCFG”, ответ будет “ABC”.
Только и всего :D



Офлайн

#3 Окт. 17, 2014 17:10:54

oxxxymiron
Зарегистрирован: 2014-10-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

Nata
Вам нужно объяснение/перевод или просто решение?Задача настолько простая, что даже как-то стыдно за нее +100 получать.Перевод: в строке длиной до 50 символов найти самую длинную цепочку символов, которая повторяется, но не пересекается с предыдущей аналогичной цепочкой, например для “ABCDABCFG”, ответ будет “ABC”. Только и всего
С английским у меня проблем нет, а вот с питоном имеются нужно просто решение!)

Офлайн

#4 Окт. 17, 2014 19:23:25

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

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'))

Офлайн

#5 Окт. 17, 2014 19:58:25

Nata
От:
Зарегистрирован: 2010-10-02
Сообщения: 87
Репутация: +  6  -
Профиль   Отправить e-mail  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

>>> 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 .
>>> 
:D

Modification as of 08:00 18 Oct.:
py.user.next
Пробелы и точки тоже нужно рассматривать
Done.



Отредактировано Nata (Окт. 18, 2014 09:02:52)

Офлайн

#6 Окт. 17, 2014 22:12:16

kamisama
Зарегистрирован: 2014-07-08
Сообщения: 34
Репутация: +  4  -
Профиль   Отправить e-mail  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

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, '')

Офлайн

#7 Окт. 18, 2014 01:20:18

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

dimy44
def 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)

Офлайн

#8 Окт. 18, 2014 09:40:55

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Вот такая вот интересная задача из Duke University! Кто решит +100 к карме :)

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 ''

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version