Текстовый файл состоит из цифр от 1 до 6, знаков операций «—» и «*» (вычитание и умножение) и заглавных латинских
Определите максимальное количество символов в непрерывной последовательности символов, состоящей из буквы В, за которой следует корректное арифметическое выражение с целыми неотрицательными числами, записанными в десятичной системе счисления.
Приведём решение на языке 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('A', ' ').replace('C', ' ').replace('D', ' ')
s = s.replace('1B', '1 B').replace('--', '- -').replace('BB', 'B B').replace('-B', '- B').replace('B-', 'B -')
s = sorted(s.split(), key = len, reverse = 1)
for i in s:
if i[-1] == '-':
i = i[:-1]
if i[0] == 'B' and i.count('B') == 1:
print(i, len(i))
break
Ответ: 68.
Приведём решение Бориса Савельева на языке Python.
f=open('24.txt').readline()
f=f.replace('--',' ')
f=f.replace('-*',' ')
f=f.replace('*-',' ')
f=f.replace('**',' ')
f=f.replace('B-','B -')
f=f.replace('-B','- B')
f=f.replace('*B','* B')
f=f.replace('B*','B *')
f=f.replace('A',' ')
f=f.replace('C',' ')
f=f.replace('D',' ')
f=f.replace(' *',' ')
f=f.replace(' -',' ')
f=f.replace('- ',' ')
f=f.replace('* ',' ')
f=f.replace('1B','1 B')
f=f.replace('2B','2 B')
f=f.replace('3B','3 B')
f=f.replace('4B','4 B')
f=f.replace('5B','5 B')
f=f.replace('6B','6 B')
f=f.split(' ')
maxi=0
for i in range (0,len(f)):
s=f[i]
if len(s) >= 1 and s[0]=='B':
if maxi < len(s):
maxi=len(s)
print(maxi)
Приведём решение Евгения Романова на языке Python.
s = open('24.txt').readline()
m = ''
for i in range(len(s)):
if s[i] == 'B':
c = s[i]
for j in range(i + 1, len(s)):
if all(x not in c for x in ['B-', 'B*', 'A', 'C', 'D', '**', '--', '*-', '-*']) and s[j] != 'B':
c += s[j]
else:
m = max(m, c[:-1].strip('*').strip('-'), key=len)
break
print(len(m), m)

