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

Тек­сто­вый файл со­сто­ит из сим­во­лов T, U, V, W, X, Y и Z.

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

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

За­да­ние 24

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

Ре­ше­ние.

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

f=open('24.txt')

s=f.readline()

f.close()

s=s.split('Y')

max_len=0

for i in range(len(s)-150):

st='Y'.join(s[i:i+151])

if max_len < len(st):

max_len=len(st)

print(max_len)

 

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

 

Ответ: 244.

 

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

 

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

f=open('24.txt')

s=f.readline()

lens=len(s)

mas=[]

for i in range(lens):

if s[i]=='Y':

mas.append(i)

if len(mas)<=150:

print(lens)

else:

maxl=mas[150]

for i in range(len(mas)-151):

maxl=max(maxl,mas[i+151]-mas[i]-1)

maxl=max(maxl,lens-mas[i+1])

print(maxl)

 

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

s = open('24.txt').readline()[:-1]

a = [i for i in range(len(s)) if s[i]=='Y']

maxl = 0

for i in range(150,len(a)):

maxl = max(a[i]-a[i-150],maxl)

print(maxl)

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