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

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

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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 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)


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





Сообщение: 1
ссылка на сообщение  Отправлено: 26.02.23 13:27. Заголовок: У меня тоже не получается прийти к верному ответу


Пробовал разные подходы, разбитие "cacac" на "cac cac" не приводит к правильному ответу, ответ получается больше, чем нужно. И я учитывал, что "cacac" - это 5 символов, всё равно не сходится. Пробовал проходить строку в обратную строну, результат тот же.
Если у кого-то получилось решить правильно, скиньте код, пожалуйста.

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



Сообщение: 1
ссылка на сообщение  Отправлено: 23.12.22 07:52. Заголовок: Надо разделить строк..


Надо разделить строку cacac на cac cac

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




Сообщение: 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 )


___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 3
ссылка на сообщение  Отправлено: 26.02.23 13:57. Заголовок: Извините, не обновил..


Извините, не обновил страницу, и не увидел ваш ответ. Спасибо!

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 29.04.23 09:15. Заголовок: Но ведь считаем коли..


Но ведь считаем количество символов.
В строке "CACAC" их пять. А в строке "CAC CAC" будет посчитано 6.
Разбиение данной комбинации на две было бы справедливо, если бы считали количество комбинаций, а не символов.

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



Сообщение: 2
ссылка на сообщение  Отправлено: 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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 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, думаю ошибка, раз у вас также

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 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

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



Не зарегистрирован
ссылка на сообщение  Отправлено: 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

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

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