Задания
Версия для печати и копирования в MS Word
Тип 24 № 59817
i

Тек­сто­вый файл со­сто­ит из сим­во­лов, обо­зна­ча­ю­щих про­пис­ные буквы ла­тин­ско­го ал­фа­ви­та. Опре­де­ли­те мак­си­маль­ное ко­ли­че­ство иду­щих под­ряд сим­во­лов, среди ко­то­рых ни­ка­кие две буквы из на­бо­ра букв A, B и C (с уче­том по­вто­ре­ний) не за­пи­са­ны под­ряд.

За­да­ние 24

Для вы­пол­не­ния этого за­да­ния сле­ду­ет на­пи­сать про­грам­му.

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

f = open('24.txt').readline()

m = 0

f = f.replace('A','1')

f = f.replace('B','1')

f = f.replace('C','1')

while '11' in f:

f = f.replace('11', '1 1')

f = f.split()

for i in range(len(f)):

m = max(m,len(f[i]))

print(m)

 

В ре­зуль­та­те ра­бо­ты дан­но­го ал­го­рит­ма при вводе дан­ных из файла в усло­вии по­лу­ча­ем ответ  — 49.

 

Ответ: 49.

 

При­ведём ре­ше­ние Юрия Лы­са­ко­ва на языке Python.

f = open('24.txt')

s = f.read()

count, maxi = 1,0

i = 0

for i in range(1,len(s)):

if s[i-1] not in 'ABC' or s[i] not in 'ABC':

count += 1

else:

maxi = max(maxi,count)

count = 1

print(maxi)

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

s = open('24.txt').readline()

a = ''.join([' ' if s[i] in 'ABC' and s[i-1] in 'ABC' else '*' for i in range(1,len(s))]).split()

print(max(len(x) for x in a)+1)

 

При­ведём ре­ше­ние Ильи Ан­дри­а­но­ва на языке Python.

s = open('24.txt').readline()

for x in 'AA BB CC AB AC BA BC CA CB'.split():

s = s.replace(x, '* *')

print(max(len(x) for x in s.split()))

Источник: ЕГЭ по ин­фор­ма­ти­ке 19.06.2023. Ос­нов­ная волна. Даль­ний Во­сток