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

Тек­сто­вый файл со­сто­ит из сим­во­лов A, C, D, F и O.

Опре­де­ли­те мак­си­маль­ное ко­ли­че­ство иду­щих под­ряд пар сим­во­лов вида:

со­глас­ная  + глас­ная.

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

24.txt

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

Ре­ше­ние.

Заведём два спис­ка: с со­глас­ны­ми бук­ва­ми ал­фа­ви­та и с глас­ны­ми. Счи­та­ем стро­ку из файла в пе­ре­мен­ную s. Далее пройдём по этой стро­ке в цикле с шагом 2, про­ве­ряя, яв­ля­ет­ся ли те­ку­щий сим­вол со­глас­ной, а сле­ду­ю­щий  — глас­ной.

 

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

f=open(r'24.txt')

s=f.read()

count=0

max_count=0

i=0

while i < len(s):

    if (s[i]=='C' or s[i]=='D' or s[i]=='F') and (s[i+1]=='A' or s[i+1]=='O'):

        count+=1

        i+=2

        if max_count < count:

            max_count=count

    else:

        count=0

        i+=1

print(max_count)

 

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

 

Ответ: 95.

 

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

 

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

a = open('24.txt')

y = a.readline()

y = y.replace('CA','0')

y = y.replace('CO','0')

y = y.replace('FA','0')

y = y.replace('FO','0')

y = y.replace('DA','0')

y = y.replace('DO','0')

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

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

y = y.replace('D','1')

y = y.replace('F','1')

y = y.replace('O','1')

print(len((max(y.split('1'),key=len))))

 

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

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

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

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

s = s.replace('F', 'D')

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

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

print(max([len(x) for x in s.split('A')]))

 

 

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

import re

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

a=re.findall('(?:[CDF][AO])+',s)

print(max(len(x) for x in a)//2)

 

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

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

ml,l=0,0

for i in range(len(s)):

if (l%2==0 and s[i] in 'CDF') or (l%2==1 and s[i] in 'AO'):

l+=1

ml=max(ml,l)

else: l=0

print(ml//2)

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2023 по ин­фор­ма­ти­ке