сегодня я поделюсь решением задачи с ЕГЭ по информатике 2024
Задача:
Найти подпоследовательность максимальной длины, которая имеет арифметический смысл и содержит только цифры 6, 7, 8, 0 и знаки операций «−», «*». При этом должны выполняться следующие условия:
Возле цифры 0 не может быть знака операции.
В выражении не должно быть умножения на отрицательные числа.
В выражении не должно быть повторяющихся знаков операций, таких как «**».
Пример правильного выражения: 6787-86.
Пример неправильного выражения: 6786*−78 (содержит повторяющиеся знаки операции и отрицательное число).
Решение:
a = open('69932.txt').readline()
nedopustim_posled = [('--','- -'), ('**','* *'),('-0', '- '), ('*0','* '), ('0-',' -'), ('0*',' *'), ('-*','- *'), ('*-','* -')]
for simbol in nedopustim_posled:
while simbol[0] in a:
a = a.replace(simbol[0], simbol[1])
a = a.split()
maxi = -1
for i in a:
if len(i) > 0 and i[-1] in '* ':
i = i[:-1]
if len(i) > 0 and i[-1] in '*':
i = i[1:]
while len(i) > 0 and i[0] =='0':
i = i[1:]
if '*' in i or '-' in i:
maxi = max(maxi,len(i))
print(maxi)
Пояснение по шагам:
делитесь постом с друзьями, а я буду продолжать разбирать для вас задачи!)