Задание 24. Информатика. ЕГЭ. Шастин. 9.2.2025
- Просмотры: 280
- Изменено: 12 февраля 2025
(Л. Шастин) Текстовый файл состоит из цифр \(0, \, 6, \, 7, \, 8, \, 9\) и знаков арифметических операций «\(-\)» и «\(*\)» (вычитание и умножение). Определите количество непрерывных подпоследовательностей в этом файле, которые являются корректными арифметическими выражениями с целыми неотрицательными числами. В таких выражениях никакие два знака арифметических операций не должны стоять рядом, а в записи чисел должны отсутствовать незначащие (ведущие) нули. В ответе укажите количество подходящих подпоследовательностей.
Например, в строке *567-8**09-30- есть следующие корректные арифметические выражения: 567-8, 67-8, 7-8, 9-3 и 9-30. Ответ: 5.
Примечание. Отдельно стоящие числа арифметическими выражениями не считать. Число \(0\) не имеет знака.
Решение:
Python
from re import findall
base = ''
s = open(base + '24.txt').readline()
arith_expr = findall(r'(?:0|[6-9][06-9]*)(?:[-*](?:0|[6-9][06-9]*))+', s)
q = 0
for expr in arith_expr:
work_expr = expr.replace('*', '-').split('-')
for j in range(len(work_expr) - 1):
if len(work_expr[j]) > 1:
mul = len(work_expr[j].replace('0', ''))
if work_expr[j][-1] == '0':
mul += 1
else:
mul = 1
q += mul * sum(len(e) for e in work_expr[j + 1:])
print(q)
Ответ: \(30460483\)