На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 5
ссылка на сообщение  Отправлено: 23.04.22 10:06. Заголовок: (№ 4208) (А. Кузнецов)


Здравствуйте. Возникла сложность с данной задачей. Код написан, но он работает долго и ответ не сходится. В чём ошибка?

(№ 4208) (А. Кузнецов) Текстовый файл 24-174.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Файл разбит на строки различной длины. Замкнутой цепочкой называется подстрока (часть одной строки файла) длиной не менее трёх символов, которая начинается и заканчивается на одну и ту же букву, но внутри этих букв не содержит. Нужно определите длину самой длинной замкнутой цепочки в строках, содержащих менее 30 букв R, а также общее количество замкнутых цепочек во всех таких строках.
Пример. Исходный файл

PRIVET
INFORMATIKA
AWERTYUIOPAZXCA

В этом примере во всех строках меньше 30 букв R. В третьей строке повторяются буквы А с порядковыми номерами 1, 11, 15. Самое большое расстояние будет между позициями 1 и 11. В ответе для данного примера нужно вывести число 10 (наибольшее расстояние) и 4 (число замкнутых цепочек: INFORMATI, ATIKA, AWERTYUIOPA, AZXCA).


 
def word_count(line):
c = 0
max_c = 0
k = 0
for i in range(len(line) - 2):
for j in range(i + 2, len(line)):
if line == line[j] and line[i:j+1].count('R') < 30 and k < 1 and line != line[i+1]:

d = len(line[i:j+1])
c += d
if max_c < d:
max_c = d
k += 1
elif k >= 1:
break
k = 0

return(c, max_c)

file = open('24-174.txt')
line = file.readline()
max_len = 0
count = 0
i = 0
while True:
if not line:
break
line.strip()
d = word_count(line)
count += d[0]
print(i, line[:15])
if d[1] > max_len:
max_len = d[1]
line = file.readline()
i += 1
print(max_len, count)





Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]







Сообщение: 38
ссылка на сообщение  Отправлено: 23.04.22 11:41. Заголовок: def word_count(line..


У вас в корне неверное решение, внимательней читайте условие.

 
def word_count(line):
c = 0
max_c = 0
for i in range(len(line) - 2):
if line.count('R') < 30:
for j in range(i + 2, len(line)):
if line[ i] == line[j ] and line[(i + 1):j].count(line[i ]) == 0:
d = j - i
c += 1
if max_c < d:
max_c = d
return (c, max_c)


file = open('24-174.txt')
line = file.readline()
max_len = 0
count = 0
while True:
if not line:
break
line.strip()
d = word_count(line)
count += d[0]
if d[1] > max_len:
max_len = d[1]
line = file.readline()
print(max_len, count)


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 6
ссылка на сообщение  Отправлено: 26.04.22 15:03. Заголовок: понял. Спасибо..


понял. Спасибо

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 14.10.23 11:23. Заголовок: может ли данный код ..


может ли данный код подойти под решение?
f1 = open('242.txt').readlines()
dlina, maxim, k = 0, 0, 0
s = []
for f in f1:
for i in range(0, len(f)):
for j in range(2, len(f)):
if f[i] == f[j] and (f[i] not in f[i+1:j]) and (f[j] not in f[i+1:j]):
s.append(f[i:j]+f[j])
print(s)
s1 = []
for i in s:
if len(i) > 2 and i.count('R')<30:
s1.append(i)
k+=1
dlina = len(i)
maxim = max(dlina,maxim )
print(maxim, k)

Спасибо: 0 
Цитата Ответить





Сообщение: 156
ссылка на сообщение  Отправлено: 23.10.23 19:11. Заголовок: s= l= for c in s: ..


Вот компактный и простой код:
 
s=[c for c in open('24-174.txt').readlines()]
l=[]
for c in s:
if c.count('R') <30:
while len(c)>0:
n = c.find(c[0],1)
if n>=2 : l.append(c[:n+1])
c=c[1::]
print(len(max(l,key=len)),len(l))


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают: гостей: 1
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 2063
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет