Задача Прога s = open ('24.txt').readline().strip() s = s.replace ('+*', '!').replace ('*+', '!') s = s.replace ('++', '!').replace ('++', '!') s = s.replace ('*+', '!').replace ('+*', '!') s = s.replace ('**', '!').replace ('**', '!') for i in ('0123456789*+'): s = s.replace (i, 'n') x = '' while (x + 'n') in s: x += 'n' print (len(x)) Код s = open ('24.txt').readline().strip() s = s.replace ('+*', '!').replace ('*+', '!') s = s.replace ('++', '!').replace ('++', '!') s = s.replace ('*+', '!').replace ('+*', '!') s = s.replace ('**', '!').replace ('**', '!') for i in ('0123456789*+'): s = s.replace (i, 'n') x = '' while (x + 'n') in s: x += 'n' print (len(x)) Правильный ответ будет 191, но прога выдает 189, почему так происходит? Где ошибка?
С кодом все в порядке. Результатом должна быть последовательность, в котором нет два или более идущих подряд ариф. символов. Твой код заменяет все ариф. символы, из-за чего концы теряются. Последовательность c включенными концами: ...+*0+50336*0+0*0+0*0+0+0*29085+0*0*0*0+63869+0+0*0*81485+0*59769*0*11776*0+0+0*0+72158*0+0*0+0+19103*0+0*0*0*0*0+0*64798*0+0+85036*0*2355*0+22500*5762*0+0+0*36119*0+0+0+0*0+0*0*0*0*0*0*31365+0++... Итоговая последовательность: *0+50336*0+0*0+0*0+0+0*29085+0*0*0*0+63869+0+0*0*81485+0*59769*0*11776*0+0+0*0+72158*0+0*0+0+19103*0+0*0*0*0*0+0*64798*0+0+85036*0*2355*0+22500*5762*0+0+0*36119*0+0+0+0*0+0*0*0*0*0*0*31365+0+ Это задание можно еще решить таким образом: Код import re with open("ege_24.txt") as f: input_text = f.read() x = re.split(r'[\+\*]{2,}', input_text) result = len(max(x, key=len)) + 2 print(result) Python import re with open("ege_24.txt") as f: input_text = f.read() x = re.split(r'[\+\*]{2,}', input_text) result = len(max(x, key=len)) + 2 print(result)
Соболезную всем, кто пишет ЕГЭ в 2025, ребятки на 100б не расчитывайте) Используй метод двух указателей в 24 задачах. Он эффективен и в нем очень тяжело ошибиться (если ты конечно его ботаешь)