Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 15, 2019 13:22:05

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

AD0DE412
Нужна помощь по регулярным выражением re
эээ … у вас … вы исходите из предположения что самый длинный элемент один (что не всегда так)
для этого список и применен

Офлайн

#2 Сен. 15, 2019 13:25:20

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

Так, стоп. По ходу пьесы, мы вообще решаем разные задачи. Мой код отдает последовательность одинаковых символов. Что, кажется, неправильно по ТЗ. Моя критика несостоятельна, при условии поиска любой подстроки в один проход, конечно, не получится.



Офлайн

#3 Сен. 15, 2019 13:45:19

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

vic57 таки да тольки его еще раз нужно обработать к примеру в for - else (после else обработка)



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 15, 2019 14:06:15)

Офлайн

#4 Сен. 15, 2019 13:52:36

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

FishHook
По ходу пьесы, мы вообще решаем разные задачи.
у меня на пробнике ЕГЭ по информатике подобное было на прошлой неделе
… в общем итог печален.



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 15, 2019 13:53:05)

Офлайн

#5 Сен. 15, 2019 15:06:44

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

AD0DE412
… в общем итог печален.
что печально? на выходе список повторяющихся подстрок в строке, как вы будете обрабатывать его - ваше дело.
разве что максимум длины подстроки добавить
 s = 'arefhjaref!!'
out = []
max_len = 0
for i in range(len(s)):
    t = s[i:]
    for j in range(len(t),1,-1):
        s1,s2 = t[:j],t[j:]
        if s2.find(s1) < 0: continue
        if len(s1) < max_len: continue
        max_len = len(s1)
        out.append(s1)
out.sort(key = lambda x: len(x),reverse=True)
print(out)
на с++ зто вообще две стандартных функции - substr и find.

Офлайн

#6 Сен. 15, 2019 15:29:06

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

vic57 ну что печально? мной не набрано нужных балов по пробнику егэ по информатике потому что невнимательно было прочитано ТЗ … это же не повод для радости?
(подозреваю что вы на свой счет все воспринемаете, зря)
а ваш код всяко - разно лучше моего, только не дожат



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#7 Сен. 16, 2019 08:28:40

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

oldjaponec@gmail.com
Задача такая. Дана строка. Надо определить самую длинную повторяющуюся подстроку.
 s = 'ntarefhjaref!!bvfhjarefantarefh'
 
def long_substr():
    n = len(s)//2
    b = True
    while b:
        for i in range(len(s) - n*2 +1):
            if s[i:i+n] in s[i+n:]:
                yield s[i:i+n]
                b = False
        if n < 2:
            return
        n -= 1
 
print('long_substr =', list(long_substr()))

Офлайн

#8 Сен. 16, 2019 13:47:01

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

rami
сильно. не вникал особо в код, но по быстродействию почти С++. только я бы ф-цию с параметром сделал -
def f(string)

Офлайн

#9 Сен. 16, 2019 15:50:13

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

Нужна помощь по регулярным выражением re

vic57
только я бы ф-цию с параметром сделал -
def f(string)
Для демонстрации алгоритма это не обязательно, но согласен, что функция без передачи параметра выглядит как недоделанная.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version