Задача к ЕГЭ по информатике на тему «поиск максимальной подстроки» №6

Текстовый файл 7.txt содержит только заглавные буквы латинского алфавита (ABC…Z). Определите максимальное количество идущих подряд символов, среди которых нет пар символов и AG и TN одновременно.

f = open(’24_5.txt’)
s = f.readline()

a = max(map(len,s.replace(’AG’,’A G’).split())) #без пары AG
b = max(map(len,s.replace(’TN’,’T N’).split())) #без пары TN

print(max(a,b))

Второй способ решения

s = open(’24_5.txt’).readline()
c = mx = 1
count_AG = 0
count_TN = 0
for i in range(len(s)-1):
    if s[i] + s[i+1] != ’AG’ and s[i] + s[i+1] != ’TN’:
        c += 1
        mx = max(mx,c)
    if s[i] + s[i+1] == ’AG’:
        if count_TN == 0:
            c += 1
            count_AG += 1
            mx = max(mx,c)
        else:
            mx = max(mx,c)
            c = 1
            count_AG = 0
            count_TN = 1
    if s[i] + s[i + 1] == ’TN’:
        if count_AG == 0:
            c += 1
            count_TN += 1
            mx = max(mx, c)
        else:
            mx = max(mx, c)
            c = 1
            count_AG = 1
            count_TN = 0
print(mx)

Ответ: 5830
Оцените статью
Я решу все!