Автор | Сообщение |
|
Отправлено: 18.12.22 17:06. Заголовок: не понимаю, что не так: самое интересное, что ответ моц отличается от правильного ан 3
(№ 5463) (Е. Джобс) Текстовый файл 24-223.txt содержит строку из символов A, B и C, всего не более чем 106 символов. Найдите максимальную длину строки, состоящей только из комбинаций AB и СAС. Например, в строке BABABCACABCB такая подстрока ABABCACAB (длина 9). 6 вариант Полякова s = open('24-223.txt').readline() k = kmax = c = cmax = 0 s = s.replace('AB', '*').replace('CAC', '%') for i in range(len(s)): if s[ i] == '*': k += 2 elif s[ i] == '%': k += 3 else: kmax = max(kmax, k) k = 0 kmax = max(kmax, k) print(kmax)
|
|
|
Ответов - 9
[только новые]
|
|
|
Отправлено: 26.02.23 13:27. Заголовок: У меня тоже не получается прийти к верному ответу
Пробовал разные подходы, разбитие "cacac" на "cac cac" не приводит к правильному ответу, ответ получается больше, чем нужно. И я учитывал, что "cacac" - это 5 символов, всё равно не сходится. Пробовал проходить строку в обратную строну, результат тот же. Если у кого-то получилось решить правильно, скиньте код, пожалуйста.
|
|
|
|
Отправлено: 23.12.22 07:52. Заголовок: Надо разделить строк..
Надо разделить строку cacac на cac cac
|
|
|
|
| Администратор
|
Сообщение: 3915
|
|
Отправлено: 26.02.23 13:34. Заголовок: s = open('24-22..
s = open('24-223.txt').readline() while 'CACAC' in s: s = s.replace( 'CACAC', 'CAC CAC' ) s = s.replace('AB', '.') s = s.replace('CAC', ',') maxLen = L = 0 for i, ch in enumerate(s): if ch in '.,': L += 2 if ch == '.' else 3 maxLen = max( maxLen, L ) else: L = 0 print( maxLen )
|
|
|
|
Отправлено: 26.02.23 13:57. Заголовок: Извините, не обновил..
Извините, не обновил страницу, и не увидел ваш ответ. Спасибо!
|
|
|
|
Отправлено: 29.04.23 09:15. Заголовок: Но ведь считаем коли..
Но ведь считаем количество символов. В строке "CACAC" их пять. А в строке "CAC CAC" будет посчитано 6. Разбиение данной комбинации на две было бы справедливо, если бы считали количество комбинаций, а не символов.
|
|
|
|
Отправлено: 26.02.23 13:55. Заголовок: Разобрался
with open('24-223.txt') as file: s = file.read() i = 0 mx = 0 c = 0 while i < len(s): if s[i:i+2] == 'AB': c += 2 i += 2 elif s[i:i+3] == 'CAC': c += 3 i += 3 elif s[i-1:i+2] == 'CAC': mx = max(mx, c) c = 3 i += 2 else: mx = max(mx, c) c = 0 i += 1 print(mx) И кстати, предыдущий комментатор был всё-таки прав, это можно было решить заменой "cacac" на "cac cac". Вот разбор подобной задачи: https://www.youtube.com/watch?v=h-aIhwLMJFs
|
|
|
|
Отправлено: 04.03.23 21:34. Заголовок: f=open('17.txt..
f=open('17.txt') s=f.readline() s=s.replace('AB','2') s=s.replace('CAC','3') s=s.replace('B','A') s=s.replace('C','A') s=s.split('A') mx=0 for a in s: b=sum(map(int,str(a))) mx=max(b,mx) print(mx) ответ тоже получаю 66, думаю ошибка, раз у вас также
|
|
|
|
Отправлено: 01.04.23 13:42. Заголовок: тип 24 задача 223
s=open('24-223.txt').readline() s=s.replace('CACAC','CAC CAC') s=s.replace('AB','2') s=s.replace('CAC','3') s=s.replace('A',' ') s=s.replace('B',' ') s=s.replace('C',' ') s=s.split() maxi=0 for x in range(len(s)): m=s[x].count('2')*2+s[x].count('3')*3 maxi=max(maxi, m) print(maxi) Ответ 69
|
|
|
|
Отправлено: 04.04.23 12:03. Заголовок: тип 24 задача 223
s=open('24-223.txt').readline() s=s.replace('CACAC','CAC CAC') s=s.replace('AB','2') s=s.replace('CAC','3') s=s.replace('A',' ') s=s.replace('B',' ') s=s.replace('C',' ') s=s.split() maxi=0 for x in range(len(s)): m=s[x].count('2')*2+s[x].count('3')*3 maxi=max(maxi, m) print(maxi) Ответ 69
|
|
|
|