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

Тек­сто­вый файл со­сто­ит из цифр от 1 до 6, зна­ков опе­ра­ций «—» и «*» (вы­чи­та­ние и умно­же­ние) и за­глав­ных ла­тин­ских букв A, B, C, D.

Опре­де­ли­те мак­си­маль­ное ко­ли­че­ство сим­во­лов в не­пре­рыв­ной по­сле­до­ва­тель­но­сти сим­во­лов, со­сто­я­щей из буквы A, за ко­то­рой сле­ду­ет кор­рект­ное ариф­ме­ти­че­ское вы­ра­же­ние с це­лы­ми не­от­ри­ца­тель­ны­ми чис­ла­ми, за­пи­сан­ны­ми в де­ся­тич­ной си­сте­ме счис­ле­ния.

За­да­ние 24

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

Ре­ше­ние.

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

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

s= s.replace('2','1').replace('3','1').replace('4','1').replace('5','1').replace('6','1')

s = s.replace('*', '-').replace('B', ' ').replace('C', ' ').replace('D', ' ')

s = s.replace('1A', '1 A').replace('--', '- -').replace('AA', 'A A').replace('-A', '- A').replace('A-', 'A -')

s = sorted(s.split(), key = len, reverse = 1)

 

for i in s:

if i[-1] == '-':

i = i[:-1]

if i[0] == 'A' and i.count('A') == 1:

print(i, len(i))

break

 

Ответ: 85.

 

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

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

for i in 'BCD':t=t.replace(i, ' ')

t=t.replace('-', '*').replace('**', '* *').replace('AA', 'A A').replace('A*', ' ')

a=t.split(' ')

b=[]

for i in a:

if (len(i)>2) and (i[0]=='A'):

b.append(i)

ms=''

for i in b:

if i[-1]=='*': i=i[:-1]

if i.count('A')==1:

if len(i) > len(ms): ms=i

else:

c=i.split('A')

for j in c:

if len(j)>2 and j[-1]=='*': j=j[:-1]

if len(j)+1 > len(ms): ms='A'+j

print(len(ms))

 

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

def calc(s):

i=0

if s[0] not in '123456': return i

while s[i] in '123456': i+=1

while True:

if s[i] not in '*-': return i

i+=1

if s[i] not in '123456': return i-1

while s[i] in '123456': i+=1

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

a=s.split('A')[1:]

ans=max(calc(x+'!') for x in a)

print(ans+1)

 

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

import re

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

a=re.findall('A[1-6]+(?:[*-][1-6]+)*',s)

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


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

Источник: Стат­Град: Тре­ни­ро­воч­ная ра­бо­та 24.10.2024 ИН2410101