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

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

За­да­ние 24

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

Ре­ше­ние.

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

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

f = f.replace('A','A ').replace('B','B ').split(' ')

maxi = 0

for i in range(len(f)-2):

c = f[i] + f[i+1]+ f[i+2][:-1]

if c.count('A') == 1 and c.count('B') == 1:

maxi= max(maxi, len(c))

c = f[-3] + f[-2]+ f[-1]

if c.count('A') == 1 and c.count('B') == 1:

maxi= max(maxi, len(c))

print(maxi)

 

Ответ: 182.

 

 

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

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

maxi = 0

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

cnt=0

a = 0

b = 0

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

cnt += 1

if f[j] == 'A':

a += 1

if f[j] == 'B':

b += 1

if a >= 2 or b >= 2:

if (a==2 and b==1) or (a==1 and b==2):

maxi = max(cnt-1,maxi)

break

print(maxi)

 

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

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

p = [-1]+[i for i in range(len(s)) if s[i] in 'AB'] + [len(s)]

print(max([p[i+3]-p[i]-1 for i in range(len(p)-3) if s[p[i+1]] != s[p[i+2]]]))


Аналоги к заданию № 61370: 61404 Все