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

Тек­сто­вый файл со­сто­ит из сим­во­лов, обо­зна­ча­ю­щих про­пис­ные буквы ла­тин­ско­го ал­фа­ви­та.

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

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

За­да­ние 24

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

Ре­ше­ние.

Для ре­ше­ния дан­ной за­да­чи будем за­ме­нять сим­во­лы из на­бо­ра букв A, B и C на «*». Далее по­счи­та­ем ко­ли­че­ство иду­щих под­ряд сим­во­лов без «*».

 

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

s = open('24.txt').read().strip()

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

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

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

maxi = 1

count = 1

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

if s[i-1]+s[i] != '**':

count += 1

maxi = max(maxi, count)

else:

count = 1

print(maxi)

 

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

 

Ответ: 84.

 

При­ме­ча­ние. Путь к файлу не­об­хо­ди­мо ука­зать со­глас­но рас­по­ло­же­нию файла на Вашем ком­пью­те­ре.

 

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

f = open('24.txt')

count = m =1

s = f.readline()

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

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

count +=1

m = max(count, m)

else:

count =1

print(m)

 

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

import re

f = open('24.txt')

a = f.readline()

b = re.split(r'AA|AB|AC|BA|BB|BC|CA|CB|CC',a)

print(len(max(b, key = len))+2)

 

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

f = open('1_24.txt').readline()

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

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

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

f = f.split('**')

maxi = 0

for i in range(0,len(f)):

maxi = max(maxi,len(f[i])+2)

print(maxi)

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