24 - Обработка символьных строк
Источники:
сайт Полякова (https://kpolyakov.spb.ru/)
демонстрационная версия станции КЕГЭ (https://kompege.ru/)
Источники:
сайт Полякова (https://kpolyakov.spb.ru/)
демонстрационная версия станции КЕГЭ (https://kompege.ru/)
1)(№ 3530) Текстовый файл 24-153.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более чем из 106 символов. Текстовый файл 24-153.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более 106 символов. AF-подстроками назовём непустые последовательности идущих подряд символов A, B, C, D, E, F, ограниченные в начале символом A, а в конце символом F (граничные символы входят в подстроку). Определите количество AF-подстрок длиной от 7 до 10 символов.
Решение
f=open('24-153.txt','r')
k=0
s=f.read()
for i in range(len(s)-3):
if s[i]=='A': k+=s[i+6:i+10].count('F')
print(k)
Ответ: 3703
2)(№ 3529) Текстовый файл 24-153.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более чем из 106 символов. AF-подстроками назовём последовательности символов A, B, C, D, E, F, ограниченные в начале символом A, а в конце символом F (граничные символы входят в подстроку). Определите минимальную длину AF-подстроки. Подстроки, состоящие из двух символов, не учитывать.
Решение
Вариант 1
f=open("24-153.txt",'r')
mi=-1
s=f.read()
d=len(s)
for i in range(d-2):
if s[i]=='A':
for k in range(i+2,d):
if s[k]=='F':
if mi>k-i+1 or mi==-1:
mi=k-i+1
break
print(mi)
Вариант 2
f=open("24-153.txt",'r')
mi=0
s=''
for i in f.read():
s+=i
if i=='F':
d=len(s)
pa=-1
for p in range(d):
if s[p]=='A':
pa=p
r=d-p
if r>2 and (mi>r or mi==0): mi=r
if pa==-1:
s=''
else:
s=s[pa:]
print(mi)
Вариант 3
s = ''
with open('24-153.txt') as f:
s = f.read()
count = 0
n = len(s)
min_ = 9999
for i in range(n-1):
if s[i] == 'A':
q = s[i:].index('F')
if q > 1:
min_ = min(min_, q)
print(min_+1)
Вариант 4
s=''
minl=10**66
for i in open('3529.txt').read():
if i=='A': s=i
elif i=='F':
s+=i
if len(s)>2:
minl=min(minl,len(s))
s=''
elif s!='':s+=i
print(minl)
Ответ: 7
3)(№ 3528) Текстовый файл 24-153.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более чем из 106 символов. DD-подстроками назовём последовательности символов A, B, C, E, F, ограниченные символами D (граничные символы входят в подстроку). Определите минимальную длину DD-подстроки. Подстроки, состоящие из двух символов, не учитывать.
Решение
Вариант 1
minl=10**6
for i in open('24-153.txt','r').read().split('D'):
if 2<len(i)<minl: minl=len(i)
print(minl+2)
Вариант 2
f=open("24-153.txt",'r')
fl=0
mi=0
for i in f.read():
if fl==0:
if i=='D': fl=1;s=1
else:
s+=1
if i=='D':
if s>2 and(mi>s or mi==0):
mi=s
s=1
print(mi)
Вариант 3
f=open("24-153.txt",'r')
s=f.read()
a=s.find('D')
mi=len(s)
b=1
while b>=0:
b=s[a+1:].find('D')
if mi>b+2 and b>0: mi=b+2
a=a+b+1
print(mi)
Ответ: 139
4)(№ 3527) Текстовый файл 24-153.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более чем из 106 символов. D-подстроками назовём последовательности идущих подряд символов D, ограниченные иными символами. Определите минимальную длину D-подстроки.
Решение
Вариант 1
s=open('24-153.txt','r').read()
for i in 'ABCEF': s=s.replace(i,' ')
print(len(min(s.split())))
Вариант 2
f=open("24-153.txt",'r')
smin=''
s=''
for i in f.read():
if i=='D':
s+=i
else:
d=len(s)
if d>1 and(d<len(smin) or len(smin)==0):
smin=s
s=''
if d>1 and(d<len(smin) or len(smin)==0):
smin=s
print(len(smin))
Вариант 3
f=open("24-153.txt",'r')
smin=0
s=0
for i in f.read():
if i=='D':
s+=1
else:
if s>1 and(s<smin or smin==0):
smin=s
s=0
print(smin)
Ответ: 5
5)(№ 3368) Текстовый файл 24-2.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Определите длину наибольшей возрастающей подпоследовательности.
Решение
Вариант 1
f=open('24-2.txt','r')
mi=0
s=f.read(1)
for i in f.read():
if s[-1]<i:s+=i
else:
if mi<len(s):mi=len(s)
s=i
if mi<len(s):mi=len(s)
print(mi)
Вариант 2
f=open('24-2.txt','r')
ma=0
s=f.read(1)
for i in f.read():
if s[-1]<i:
s+=i
ma=max(ma,len(s))
else: s=i
print(ma)
Вариант 3
f=open('24-2.txt','r')
k,ma=0,0
s=' '+f.read()
for i in range(1,len(s)):
if s[i]>s[i-1]:
k+=1
ma=max(k,ma)
else:k=1
print(ma)
Ответ: 8
6)(№ 3367 В.Н.Шубинкин) Текстовый файл 24-3.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Определите длину наибольшей возрастающей подпоследовательности.
Решение
Вариант 1
f=open('24-3.txt','r')
mi=0
s=f.read(1)
for i in f.read():
if s[len(s)-1]<i:s+=i
else:
if mi<len(s):mi=len(s)
s=i
if mi<len(s):mi=len(s)
print(mi)
Вариант 2
a=open('24-3.txt').read()
k,maxl=1,0
for i in range(1,len(a)):
if a[i-1]<a[i]:
k+=1
maxl=max(maxl,k)
else:k=1
print(maxl)
Ответ: 7
7)(№ 3365) Текстовый файл 24-2.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Запишите в ответе наибольшую возрастающую подпоследовательность. Если таких последовательностей несколько, запишите первую из них.
Решение
Вариант 1
f=open('24-2.txt','r')
mi=0
s=f.read(1)
for i in f.read():
if s[len(s)-1]<i:s+=i
else:
if mi<len(s):mi=len(s);sk=s
s=i
if mi<len(s):mi=len(s);sk=s
print(sk)
Вариант 2
f=open('24-2.txt','r')
k=0
ma=''
s=' '+f.read()
for i in range(1,len(s)):
if s[i]>s[i-1]:
k+=1
if len(ma) < k: ma=s[i-k+1:i+1]
else:k=1
print(ma)
Ответ: 3BEHUkvy
8)(№ 3364) Текстовый файл 24-3.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Запишите в ответе наибольшую возрастающую подпоследовательность. Если таких последовательностей несколько, запишите первую из них.
Решение
f=open('24-2.txt','r')
mi=0
s=f.read(1)
for i in f.read():
if s[len(s)-1]<i:s+=i
else:
if mi<len(s):mi=len(s);sk=s
s=i
if mi<len(s):mi=len(s);sk=s
print(sk)
Ответ: 3TWZfgq
9)(№ 3362) Текстовый файл 24-2.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Запишите в ответе номер символа, с которого начинается наибольшая возрастающая подпоследовательность. Если таких последовательностей несколько, используйте первую из них. Нумерация символов начинается с 1.
Решение
f=open('24-2.txt','r')
mi=0
s=f.read(1)
p=1
for i in f.read():
if s[len(s)-1]<i:s+=i;p+=1
else:
p+=1
if mi<len(s):mi=len(s);sk=p-len(s)
s=i
if mi<len(s):mi=len(s);sk=p-len(s)
print(sk)
Ответ: 45718
10)(№ 3361) Текстовый файл 24-3.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Запишите в ответе номер символа, с которого начинается наибольшая возрастающая подпоследовательность. Если таких последовательностей несколько, используйте первую из них. Нумерация символов начинается с 1.
Решение
f=open('24-3.txt','r')
mi=0
s=f.read(1)
p=1
for i in f.read():
if s[len(s)-1]<i:s+=i;p+=1
else:
p+=1
if mi<len(s):mi=len(s);sk=p-len(s)
s=i
if mi<len(s):mi=len(s);sk=p-len(s)
print(sk)
Ответ: 994
11)(№ 3359) Текстовый файл 24-2.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Убывающей подпоследовательностью будем называть последовательность символов, расположенных в порядке уменьшения их номера в кодовой таблице символов ASCII. Определите длину наибольшей убывающей подпоследовательности.
Решение
f=open('24-2.txt','r')
mi=0
s=f.read(1)
for i in f.read():
if s[len(s)-1]>i:s+=i
else:
if mi<len(s):mi=len(s)
s=i
if mi<len(s):mi=len(s)
print(mi)
Ответ: 8
12)(№ 3353) Текстовый файл 24-2.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Убывающей подпоследовательностью будем называть последовательность символов, расположенных в порядке уменьшения их номера в кодовой таблице символов ASCII. Запишите в ответе номер символа, с которого начинается наибольшая убывающая подпоследовательность. Если таких последовательностей несколько, используйте первую из них. Нумерация символов начинается с 1.
Решение
f=open('24-2.txt','r')
s=f.read()
st=s[0]
sm=''
for i in s[1:]:
if st[-1] > i:
st+=i
if len(sm)<len(st):sm=st
else:st=i
print(s.find(sm)+1)
Ответ: 44701
13)(№ 3350) Текстовый файл 24-1.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр. Всего не более 106 символов. Назовём локальным максимумом символ, номер которого в кодовой таблице больше номеров предыдущего и последующего символов. Самый первый и самый последний символ не являются локальным максимумами. Определить наибольшее расстояние между двумя соседними локальными максимумами. Расстоянием между элементами будем считать разность их индексов.
Решение
f=open('24-1.txt','r')
s=f.read(3)
a=-1
p=1
ma=0
for i in f.read():
if a<0:
if s[0]<s[1]>s[2]: a=p
else:
if s[0]<s[1]>s[2]:
b=p
if b-a>ma: ma=b-a
a=b
s=s[1:]+i
p+=1
print(ma)
Ответ: 28
14)(№ 3349) Текстовый файл 24-1.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр. Всего не более 106 символов. Назовём локальным минимумом символ, номер которого в кодовой таблице меньше номеров предыдущего и последующего символов. Самый первый и самый последний символ не являются локальными минимумами. Определить наибольшее расстояние между двумя соседними локальными минимумами. Расстоянием между элементами будем считать разность их индексов.
Решение
Вариант 1
f=open('24-1.txt','r')
s=f.read(3)
a=-1
p=1
ma=0
for i in f.read():
if a<0:
if s[0]>s[1]<s[2]: a=p
else:
if s[0]>s[1]<s[2]:
b=p
if b-a>ma: ma=b-a
a=b
s=s[1:]+i
p+=1
print(ma)
Вариант 2
a=open('24-1.txt').read()
p,maxl=-1,0
for i in range(1,len(a)-1):
if a[i-1]>a[i]<a[i+1]:
if p>0:
maxl=max(maxl,i-p)
p=i
print(maxl)
Ответ: 29
15)(№ 3348) Текстовый файл 24-j1.txt состоит не более чем из 106 кириллических символов К, О, Т. Определите максимальное количество подряд идущих комбинаций КОТ.
Решение
f=open('24-j1.txt','r')
s=f.read()
sk='КОТ'
while s.find(sk)!=-1: sk+='КОТ'
print(len(sk)//3-1)
Ответ: 75
16)(№ 3347) Текстовый файл 24-j2.txt состоит не более чем из 106 символов F, A, I, L . Определите максимальное количество подряд идущих одинаковых букв.
Решение
Вариант 1
f=open('24-j2.txt','r')
sk='';mk=0
for i in f.read():
if sk==i:k+=1;mk=max(mk,k)
else:k=1;sk=i
print(mk)
Вариант 2
f=open('24-j2.txt','r')
s=f.read();mk=0
for i in ('F','A','I','L'):
sp=i
while s.find(sp)!=-1:sp+=i
mk=max(mk,len(sp)-1)
print(mk)
Ответ: 75
17)(№ 3346) Текстовый файл 24-j3.txt состоит не более чем из 106 символов I, K, O, T. Сколько раз встречаются комбинации «TIK» и «TOK»?
Решение
f=open('24-j3.txt','r')
s=f.read()
print(s.count('TIK')+s.count('TOK'))
Ответ: 31348
18)(№ 3345) Текстовый файл 24-j4.txt состоит не более чем из 106 символов J, O, B, S. Сколько раз встречаются комбинации «BOSS» при этом до и после этого слова нет символа «J»? Например, комбинации «JBOSS», «BOSSJ» и «JBOSSJ» не должны учитываться.
Решение
Вариант 1
f=open('24-J4.txt','r')
s=f.read()
print(s.count('BOSS')-s.count('JBOSS')-s.count('BOSSJ')+s.count('JBOSSJ'))
Вариант 2
f=open('24-j4.txt','r')
s=' '+f.read(5)
k=0
for i in f.read()+' ':
if s.find('BOSS')==1 and s[0]!='J'and s[5]!='J':
k+=1
s=s[1:]+i
if s.find('BOSS')==2 and s[1]!='J': k+=1
print(k)
Ответ: 2198
19)(№ 3158) Текстовый файл 24-s2.txt состоит не более чем из 106 заглавных латинских букв. Определите символ, который чаще всего встречается в файле между буквами A и C, так что A стоит слева от него, а C – справа. В ответе запишите сначала этот символ, а потом сразу (без разделителя) сколько раз он встретился между буквами A и C. Если таких символов несколько, нужно вывести тот, который стоит раньше в алфавите. Например, в тексте ABCCAAСZABCADCDD между буквами A и C два раза стоит B, по одному разу – A и D. Для этого текста ответом будет B2.
Решение
Вариант 1
f=open('24-s2.txt','r')
sn='';m=[]
s=f.read(2)
for i in f.read():
s+=i
if s[0]+s[2]=='AC':
st=s[1];p=sn.find(st)
if p>-1: m[p]+=1
else: sn+=s[1];m.append(1)
s=s[1:]
ma=max(m)
for i in range(len(sn)):
if m[i]==ma: print(sn[i],' - ',m[i])
Вариант 2
f=open('24-s2.txt','r')
a=f.read()
s='QWERTYUIOPASDFGHJKLZXCVBNM'
sm=''
km=0
for i in s:
k=a.count('A'+i+'C')
if k>km: km=k;sm=i
elif k==km and sm>i: sm=i
print(sm+str(km))
Ответ: T72
20)(№ 2716) Текстовый файл 24-j8.txt состоит не более чем из 106 десятичных цифр. Найдите максимальную длину последовательности, каждые две соседние цифры в которой в сумме дают значение не меньшее 10. Например, в последовательности 1567543853 есть две такие последовательности: 5675 и 385. В качестве ответа укажите максимальную длину найденной последовательности.
Решение
f=open('24-j8.txt','r')
ma=0;k=1
a=int(f.read(1))
for i in f.read():
b=int(i)
if a+b>9:
k+=1
ma=max(ma,k)
else:
k=1
a=b
print(ma)
Ответ: 26
21)(№ 2715) Текстовый файл 24-j7.txt состоит не более чем из 106 десятичных цифр. Найдите максимальную длину последовательности, которая состоит из цифр одинаковой четности. Например, в последовательности 1533244622185452354, 5 последовательностей с нечетными цифрами: 1533, 1, 5, 5, 35; и 5 с четными: 244622, 8, 4, 2, 4. Следовательно, искомая последовательность – 244622. В качестве ответа укажите максимальную длину найденной последовательности.
Решение
Вариант 1
f=open('24-j7.txt','r')
ma=0;k=1
a=int(f.read(1))%2
for i in f.read():
x=int(i)%2
if a==x: k+=1; ma=max(ma,k)
else: a=x;k=1
print(ma)
Вариант 2
f=open('24-j7.txt','r')
sk='02468'
s=''
for i in f.read():
if i in sk:s+='0'
else:s+='1'
sk='1'
while s.find(sk)>=0: sk+=sk[-1]
k=len(sk)-1
sk='0'
while s.find(sk)>=0: sk+=sk[-1]
k=max(k,len(sk)-1)
print(k)
Ответ: 18
22)(№ 2714) Текстовый файл 24-j6.txt состоит не более чем из 106 десятичных цифр. Восходящей последовательностью называется последовательность цифр, в которой каждая цифра меньше следующей за ней. Например, в последовательности 7238903278 три таких последовательности – 2389, 03 и 278. Длиной последовательности называется количество входящих в нее цифр. Определите сколько в файле восходящих последовательностей длиной 5, не входящих в восходящие последовательности большей длины.
Решение
Вариант 1
f=open('24-j6.txt','r')
a=f.read(1)
k=0;k5=1
for i in f.read():
if a<i: k5+=1
else:
if k5==5: k+=1
k5=1
a=i
if k5==5: k+=1
print(k)
Вариант 2
f=open('24-j6.txt','r')
s=f.read(1)
k=0
for i in f.read()+'0':
if s[-1]<i: s+=i
else:
if len(s)==5:k+=1
s=i
print(k)
Вариант 3
f=open('24-j6.txt','r')
s=read()+'0'
k=1
kl=0
for i in range(1,len(s)):
if s[i-1]<s[i]: k+=1
else:
if k==5: kl+=1
k=1
print(kl)
Ответ: 2087
23)(№ 3786) Текстовый файл 24-164.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую самую длинную цепочку стоящих подряд одинаковых букв. Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZZQABA
ZALAAC
QRAQUT
В этом примере в первой и второй строках наибольшая длина цепочек одинаковых буквы равна 2 (ZZ в первой строке, AA во второй), в третьей – 1. Берём первую строку, т.к. она находится в файле раньше. В этой строке чаще других встречаются буквы Z и A (по 2 раза), выбираем букву A, т. к. она стоит раньше в алфавите. В ответе для этого примера надо записать A6, так как во всех строках файла буква A встречается 6 раз.
Решение
alf=''
for i in range(26):alf+=chr(ord('A')+i)
maxs=0;ss=''
for s in open('24-164.txt','r'):
ss+=s; maxp=0
for i in alf:
st=i
while s.find(st)>-1:st+=i
maxp=max(maxp,len(st)-1)
if maxp>maxs:
maxs=maxp
sm=s
maxb=0
for i in alf:
k=sm.count(i)
if maxb<k:
maxb=k
maxbs=i
print(maxbs+str(ss.count(maxbs)))
Ответ: K36582
24)(№ 4042) Текстовый файл 24-164.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. ВВ строках, содержащих менее 20 букв E, нужно определить и вывести максимальное расстояние между одинаковыми буквами в одной строке.
Пример. Исходный файл:
VOVA
ZAEALE
QRAEQT
В этом примере во всех строках меньше 20 букв E. Самое большое расстояние между одинаковыми буквами – в третьей строке между буквами Q, расположенными в строке на 1-й и 5-й позициях. В ответе для данного примера нужно вывести число 4.
Решение
Вариант 1
mal=0
alf=''
for i in range(26): alf+=chr(ord('A')+i)
for s in open('24-164.txt','r'):
if s.count('E')<20:
for i in alf:
mal=max(mal,s.rfind(i)-s.find(i))
print(mal)
Вариант 2
maxl=0
for s1 in open('24-164.txt').read().split('\n'):
if s1.count('E')<20:
for i in range(len(s1)-1):
maxl=max(maxl,s1.rfind(s1[i])-i)
print(maxl)
Ответ: 974
25)(№ 3784) Текстовый файл 24-s1.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую наибольшее количество пар соседних букв, которые стоят в таком же порядке и в алфавите (например, AB, BC, CD и т.д.). Если таких строк несколько, надо взять ту, которая в файле встретилась позже. Определите, какая буква встречается в этой строке реже всего (но присутствует!). Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZCQABA
ZALMAC
CRACUT
В этом примере в первой и второй строках по одной подходящей паре (AB и LM), в третьей таких пар нет. Берём вторую строку, т.к. она позже встречается в файле. В этой строке реже других встречаются буквы Z и C (по одному разу), выбираем букву С, т. к. она раньше стоит в алфавите. В ответе для этого примера надо записать C4, так как во всех строках файла буква C встречается 4 раза.
Решение
mak=0
alf=''
for i in range(26): alf+=chr(ord('A')+i)
ss=''
for s in open('24-s1.txt','r'):
ss+=s
k=0
for i in range(25):
k+=s.count(alf[i:i+2])
if mak<=k:
mak=k
maks=s
mas=len(maks)
for a in alf:
if 0<maks.count(a)<mas:
mas=maks.count(a)
mass=a
print(mass+str(ss.count(mass)))
Ответ: B38617
26)(№ 3783) Текстовый файл 24-s1.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую наименьшее ненулевое количество пар соседних букв, которые стоят в таком же порядке и в алфавите (например, AB, BC, CD и т.д.). Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая стоит последней в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZZQABA
ZALMAC
KRAKUT
В этом примере в первой и второй строках по одной подходящей паре (AB и LM), в третьей таких пар нет. Берём первую строку, т.к. она находится в файле раньше. В этой строке чаще других встречаются буквы Z и A (по два раза), выбираем букву Z, т. к. она позже стоит в алфавите. В ответе для этого примера надо записать Z3, так как во всех строках файла буква Z встречается 3 раза.
Решение
Вариант 1
mik=-1
alf=''
for i in range(26): alf+=chr(ord('A')+i)
ss=''
for s in open('24-s1.txt','r'):
ss+=s
k=0
for i in range(25):
k+=s.count(alf[i:i+2])
if (mik>=k or mik==-1)and k>0:
mik=k
miks=s
mas=0
for a in alf:
if miks.count(a)>=mas:
mas=miks.count(a)
mass=a
print(mass+str(ss.count(mass)))
Вариант 2
f=open('24-s1.txt')
alf=''
for a in range(26): alf+=chr(ord('A')+a)
s=f.readlines()
mink=-1
for i in s:
k=0
for a in range(2,len(i)):
if i[a-2:a] in alf:
k+=1
if (mink==-1 or mink>k) and k>0 :
mink=k
mins=i
ks=0
for i in alf:
kt=mins.count(i)
if kt>ks:
ks=kt
sk=i
print(sk+str(','.join(s).count(sk)))
Ответ: W38473
27)(№ 3750) Текстовый файл 24-157.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ, который чаще всего встречается в файле между двумя одинаковыми символами. Например, в тексте CCBAABABCBC есть комбинации ABA, BAB, BCB и CBC. Чаще всего – 2 раза – между двумя одинаковыми символами стоит B, в ответе для этого случая надо написать B2 (без пробелов и других разделителей). Если таких символов несколько, выведите тот, который стоит раньше в алфавите.
Решение
f=open('24-157.txt','r')
s=f.read()[:-1]
m=[0]*26
for i in range(len(s)-2):
st=s[i:i+3]
if st==st[::-1]:
m[ord(st[1])-ord('A')]+=1
ma=max(m)
for i in range(26):
if ma==m[i]:
print(chr(ord('A')+i)+str(m[i]))
break
Ответ: W1608
28)(№ 3749) Текстовый файл 24-157.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ, который чаще всего встречается в файле перед двумя одинаковыми символами. Например, в тексте CCBAABABBCCC есть комбинации BAA, ABB, BCC и CCC. Чаще всего – 2 раза – перед двумя одинаковыми символами стоит B, в ответе для этого случая надо написать B2 (без пробелов и других разделителей). Если таких символов несколько, выведите тот, который стоит раньше в алфавите.
Решение
Вариант 1
f=open('24-157.txt','r')
s=f.read()[:-1]
m=[0]*26
for i in range(len(s)-2):
st=s[i:i+3]
if st[1]==st[2]: m[ord(st[0])-ord('A')]+=1
ma=max(m)
for i in range(26):
if ma==m[i]:
print(chr(ord('A')+i)+str(ma))
break
Вариант 2
f=open('24-157.txt')
s=f.read()
sk=''
for i in range(len(s)-2):
if s[i+1]==s[i+2]:
sk+=str(s[i])
al=''
for i in range(26):
al+=chr(ord('A')+i)
cn=[0]*26
for i in range(26):
cn[i]=sk.count(al[i])
maxk=max(cn)
for i in range(26):
if cn[i]==maxk:
print(al[i]+str(cn[i]))
Ответ: X1560
29)(№ 2517 А.М.Кабанов) В текстовом файле k7a-3.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, состоящей из символов A, B, E, F (в произвольном порядке).
Решение
Вариант 1
s=open('k7a-3.txt','r').read().replace('C',' ').replace('D',' ').split()
maxl=0
for i in s: maxl=max(len(i),maxl)
print(maxl)
Вариант 2
f=open('k7a-3.txt','r')
ma,k=0,0
for c in f.read():
if c in 'ABEF': k+=1; ma=max(ma,k)
else: k=0
print(ma)
Ответ: 20
30)(№ 2506) В текстовом файле k7.txt находится цепочка из символов латинского алфавита A, B, C длиной не более 106 символов. Найдите длину самой длинной подцепочки, состоящей из символов C.
Решение
Вариант 1
f=open('k7.txt')
s=f.read()
k='C'
while k in s: k+='C'
print(len(k)-1)
Вариант 2
s=open('k7.txt').read()
k='C'
while k in s: k+='C'
print(len(k)-1)
Вариант 3
s=open('k7.txt').read()
k=1
while 'C'*k in s: k+=1
print(k-1)
Вариант 4
k=1
while 'C'*k in open('k7.txt').read(): k+=1
print(k-1)
Вариант 5
f=open('k7.txt','r')
maxk,k=0,0
for i in f.read():
if i=='C':
k+=1
maxk=max(maxk,k)
else:
k=0
print(maxk)
Вариант 6
print(len(max(open('k7.txt').read().replace('A',' ').replace('B',' ').split())))
Ответ: 11
31)(№ 2507) В текстовом файле k8.txt находится цепочка из не более чем 106 символов, в которую могут входить заглавные буквы латинского алфавита A…Z и десятичные цифры. Найдите длину самой длинной подцепочки, состоящей из одинаковых символов. Выведите сначала символ, из которого строится цепочка, а затем через пробел – длину этой цепочки. Если таких цепочек (максимальной длины) несколько, выведите информацию о первой встретившейся цепочке.
Решение
f=open('k8.txt','r')
maxk,k=0,0
sk=''
for i in f.read():
if i==sk:
k+=1
if k>maxk:
maxk=k
maxs=sk
else:
sk=i
k=1
print(maxs,maxk)
Ответ: E 9
32)(№ 2508) В текстовом файле k8.txt находится цепочка из не более чем 106 символов, в которую могут входить заглавные буквы латинского алфавита A…Z и десятичные цифры. Найдите длину самой длинной подцепочки, состоящей из одинаковых символов. Для каждой цепочки максимальной длины выведите в отдельной строке сначала символ, из которого строится эта цепочка, а затем через пробел – длину этой цепочки.
Решение
f=open('k8.txt','r')
maxk,k=0,0
sk,maxs='',''
for i in f.read():
if i==sk:
k+=1
if k>maxk:
maxk=k
maxs=sk+' '+str(k)+'\n'
elif k==maxk:
maxs+=sk+' '+str(k)+'\n'
else:
sk=i
k=1
print(maxs)
Ответ: E 9
Y 9
33)(№ 2509 Демовариант 2021 г.) Текстовый файл 24.txt состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
Решение
f=open('24.txt','r')
maxk=0
k=1
sk=f.read(1)
for i in f.read():
if sk!=i:
k+=1
maxk=max(maxk,k)
else: k=1
sk=i
print(maxk)
Ответ: 35
34)(№ 2510 А.М.Кабанов) В текстовом файле k7a-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E. Найдите длину самой длинной подцепочки, состоящей из символов A, B или C (в произвольном порядке).
Решение
f=open('k7a-1.txt','r')
maxk,k=0,0
for i in f.read():
if i in 'ABC':
k+=1
maxk=max(maxk,k)
else: k=0
print(maxk)
Ответ: 16
35)(№ 4527) Текстовый файл 24-181.txt строку из заглавных латинских букв и точек, всего не более чем из 106 символов. Определите максимальное количество идущих подряд символов, среди которых не более четырёх точек.
Решение
Вариант 1
a,maxl=list(map(len,open('24-181.txt').read().split('.'))),0
for i in range(len(a)-5): maxl=max(maxl,sum(a[i:i+5])+4)
print(maxl)
Вариант 2
maxl=0
l=[]
for i in open('24-181.txt').read().split('.'):
l.append(len(i))
if len(l)>5:
l=l[1:]
maxl=max(maxl,sum(l)+len(l)-1)
print(maxl)
Вариант 3
f=open('24-181.txt','r')
maxk=0
s=''
for i in f.read():
s+=i
if s.count('.')<=4:
maxk=max(maxk,len(s))
else: s=s[s.find('.')+1:]
print(maxk)
Вариант 4
maxl=0
s=''
for i in open('24-181.txt').read():
s+=i
if s.count('.')==6:
s=s[s.find('.')+1:]
else: maxl=max(maxl,len(s))
print(maxl)
Ответ: 483
36)(№ 4528) Текстовый файл 24-181.txt строку из заглавных латинских букв и точек, всего не более чем из 106 символов. Определите максимальное количество идущих подряд символов, среди которых не более пяти точек.
Решение
f=open('24-181.txt','r')
maxk=0
s=''
for i in f.read():
s+=i
if s.count('.')<=5:
maxk=max(maxk,len(s))
else: s=s[s.find('.')+1:]
print(maxk)
Ответ: 550
37)(№ 4409 Л. Шастин) Текстовый файл 24-179.txt содержит строку из заглавных букв A, B, C, D, E, F, всего не более чем из 106 символов. Определите, сколько встречается комбинаций вида CB*BC, где на месте "*" может стоять любая буква, кроме A, B и F. В ответе укажите сначала букву, которая чаще всего встречается на месте "*", затем общее количество подходящих комбинаций.
Решение
Решение 1
a=open('24-179.txt').read()
c=''
for i in range(len(a)-5):
b=a[i:i+5]
if b[2] in 'CDE' and b[:2]+b[3:]=='CBBC': c+=b[2]
ks=[c.count('C'),c.count('D'),c.count('E')]
print('CDE'[ks.index(max(ks))]+str(sum(ks)))
Решение 2
f=open('24-179.txt','r')
maxk=0
s=f.read()
ss=0
for i in 'CDE':
k=0
sk=s[:4]
for a in s[5:]:
sk+=a
if sk =='CB'+i+'BC':
k+=1
sk=sk[1:]
ss+=k
if maxk<k:
maxk=k
maxs=i
print(maxs+str(ss))
Решение 3
f=open('24-179.txt','r')
s=f.read()
k=0
ss=''
sk=s[:4]
for a in s[4:]:
sk+=a
if sk in ('CBCBC','CBDBC','CBEBC'):
k+=1
ss+=sk[2]
sk=sk[1:]
maxk=0
for i in 'CDE':
if maxk<ss.count(i):
maxk=ss.count(i)
maxs=i
print(maxs+str(k))
Ответ: C6347
38)(№ 2518 А.М.Кабанов) В текстовом файле k7a-4.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, не содержащей символа D.
Решение
Решение 1
print(max(map(len,open('k7a-4.txt').read().split('D'))))
Решение 2
s=''
for i in open('k7a-4.txt','r').read():
if i=='D':s+=' '
else: s+=*
print(len(max(s.splin())))
Решение 3
f=open('k7a-4.txt','r')
s=f.read()
maxk=0
for i in s.split('D'):
maxk=max(maxk,len(i))
print(maxk)
Решение 4
maxk,p=0,0
for i in open('k7a-4.txt','r').read():
if i!='D':
p+=1
maxk=max(maxk,p)
else: p=0
print(maxk)
Решение 5
f=open('k7a-4.txt','r')
maxk=0
s=f.read()+'D'
p=0
for i in s:
if i=='D':
maxk=max(maxk,p)
p=0
else: p+=1
print(maxk)
Ответ: 44
39)(№ 2519 А.М.Кабанов) В текстовом файле k7a-5.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, не содержащей символов C и F.
Решение
Решение 1
print(max(map(len,open('k7a-5.txt').read().replace('F','C').split('C'))))
Решение 2
s=open('k7a-5.txt','r').read().replace('C',' ').replace('F',' ')
maxl=0
for i in s.split():
maxl=max(maxl,len(i))
print(maxl)
Решение 3
maxl=k=0
for c in open('k7a-5.txt').read():
if c in 'FC':
k=0
else:
k+=1
maxl=max(maxl,k)
print(maxl)
Ответ: 19
40)(№ 2523 П.Е.Финкель) Текстовый файл 24-1.txt состоит не более чем из 106 символов - заглавных латинских букв и цифр. Определите максимальное нечётное число, записанное в этом файле. Под числом подразумевается последовательность цифр, ограниченная другими символами (не цифрами).
Решение
Решение 1
f=open('24-1.txt','r')
s=f.read()
for i in range(26):
s=s.replace(chr(ord('A')+i),' ')
maxch=0
for i in s.split():
if int(i)%2==1:
maxch=max(maxch,int(i))
print(maxch)
Решение 2
s=''
for i in open('24-1.txt','r').read():
if i in '0123456789': s+=i
else: s+=' '
maxch=0
for i in s.split():
if int(i)%2==1:
maxch=max(maxch,int(i))
print(maxch)
Решение 3
maxc=0
s=''
for c in open('24-1.txt').read()+'*':
if c in '0123456789':
s+=c
elif len(s)>0:
if int(s)%2:
maxc=max(maxc,int(s))
s=''
print(maxc)
Ответ: 7642289
41)(№ 2524 П.Е.Финкель) Текстовый файл 24-1.txt состоит не более чем из 106 символов - заглавных латинских букв и цифр. Определите минимальное нечётное число, записанное в этом файле. Под числом подразумевается последовательность цифр, ограниченная другими символами (не цифрами).
Решение
Решение 1
f=open('24-1.txt','r')
s=f.read()
for i in range(26):
s=s.replace(chr(ord('A')+i),' ')
minch=-1
for i in s.split():
if int(i)%2==1:
if minch==-1 or minch >int(i):
minch=int(i)
print(minch)
Решение 2
s=''
for i in open('24-1.txt','r').read():
if i in '0123456789': s+=i
else: s+=' '
minch=-1
for i in s.split():
if int(i)%2==1 and (minch==-1 or minch>int(i)):
minch=int(i)
print(minch)
Решение 3
minc=10**16
s=''
for c in open('24-1.txt').read()+'*':
if c in '0123456789':
s+=c
elif len(s)>0:
if int(s)%2:
minc=min(minc,int(s))
s=''
print(minc)
Ответ: 123
42)(№ 2529 В.Н.Шубинкин) Текстовый файл 24.txt состоит не более чем из 106 символов - заглавных латинских букв и цифр. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Найдите наибольшую возрастающую подпоследовательность в этом файле, запишите в ответе сначала саму последовательность, а затем – её длину. Если таких последовательностей несколько, используйте первую из них.
Решение
sk=chr(255)
maxs=''
for i in open('24.txt','r').read():
if i > sk[-1]:
sk+=i
if len(sk)> len(maxs):
maxs=sk
else:
sk=i
print(maxs, len(maxs))
Ответ: XYZ 3
43)(№ 2531 В.Н.Шубинкин) Текстовый файл 24.txt состоит не более чем из 106 символов - заглавных латинских букв и цифр. Возрастающей подпоследовательностью будем называть последовательность символов, расположенных в порядке увеличения их номера в кодовой таблице символов ASCII. Найдите наибольшую возрастающую подпоследовательность в этом файле, запишите в ответе номер символа в файле, с которого она начинается (нумерация символов начинается с 1). Если таких последовательностей несколько, используйте первую из них.
Решение
sk=chr(255)
maxs=''
s=open('24.txt','r').read()
for i in s:
if i > sk[-1]:
sk+=i
if len(sk)> len(maxs):
maxs=sk
else:
sk=i
print(s.find(maxs)+1)
Ответ: 7
44)(№ 2537 К.Амеличев) Текстовый файл 24-5.txt содержит последовательность из символов «(»и «)», всего не более 106 символов. Определите количество пар скобок «()» в этом файле.
Решение
print(open('24-5.txt','r').read().count('()'))
Ответ: 236815
45)(№ 2538 К.Амеличев) Текстовый файл 24-5.txt содержит последовательность из символов «(»и «)», всего не более 106 символов. Определите максимальное количество подряд идущих пар скобок «()» в этом файле.
Решение
Решение 1
s=open('24-5.txt','r').read().replace('()','*')
s=s.replace('(',' ').replace(')',' ')
print(len(max(s.split())))
Решение 2
a=open('24-5.txt').read()
k=1
while '()'*k in a:k+=1
print(k-1)
Ответ: 10
46)(№ 2539 К.Амеличев) Текстовый файл 24-5.txt содержит последовательность из символов «(»и «)», всего не более 106 символов. Определите максимальное количество подряд идущих открывающих скобок «(» в этом файле.
Решение
print(len(max(open('24-5.txt','r').read().replace(')',' ').split())))
Ответ: 18
47)(№ 2541 №679 К.Амеличев) Текстовый файл 24-5.txt содержит последовательность из символов «(»и «)», всего не более 106 символов. Определите, каким по счёту символом от начала файла окажется 10000-я открывающая скобка «(» (нумерация символов начинается с 1).
Решение
Решение 1
f=open('24-5.txt','r')
s=f.read()
s=s.replace('(',')',10000-1)
print(s.find('(')+1)
Решение 2 (сжатое)
print(open('24-5.txt','r').read().replace('(',')',10000-1).find('(')+1)
Ответ: 20137
48)(№ 2545 Е.Джобс) Текстовый файл 24-j5.txt состоит не более чем из 106 символов S, T, O, C, K. Сколько раз встречается в файле комбинация «KOT»?
Решение
print(open('24-j5.txt','r').read().count('KOT'))
Ответ: 8192
49)(№ 2547 Е.Джобс) Текстовый файл 24-j5.txt состоит не более чем из 106 символов S, T, O, C, K. Сколько раз встречается в файле комбинация «KTO»?
Решение
print(open('24-j5.txt','r').read().count('KTO'))
Ответ: 7973
50)(№ 2552) Текстовый файл 24-j5.txt состоит не более чем из 106 символов S, T, O, C, K. Сколько раз встречается в файле комбинация «SOCKCOS»?
Решение
print(open('24-j5.txt','r').read().replace('S','SS').count('SOCKCOS'))
Ответ: 15
51)(№ 2550) Текстовый файл 24-j5.txt состоит не более чем из 106 символов S, T, O, C, K. Сколько раз встречается в файле комбинация «SOCKCOS»?
Решение
print(open('24-j5.txt').read().replace('S','SS').count('SOCKS'))
Ответ: 316
52)(№ 2555) Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых буква S встречается столько же раз, сколько и буква X.
Решение
k=0
for i in open('24-s1.txt').readlines():
if i.count('S')==i.count('X'): k+=1
print(k)
Ответ: 48
53)(№ 2554) Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых буква K встречается чаще, чем буква U.
Решение
k=0
for i in open('24-s1.txt').readlines():
if i.count('K')>i.count('U'): k+=1
print(k)
Ответ: 470
54)(№ 2556) Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых комбинация YZ встречается больше одного раза.
Решение
k=0
for i in open('24-s1.txt').readlines():
if i.count('YZ')>1: k+=1
print(k)
Ответ: 433
55)(№ 2544 Е.Джобс) Текстовый файл 24-j5.txt состоит не более чем из 106 символов S, T, O, C, K. Сколько раз встречается комбинация «OCK», не являющаяся при этом частью комбинации «STOCK».
Решение
s=open('24-j5.txt').read()
print(s.count('OCK')-s.count('STOCK'))
Ответ: 7626
56)(№ 4209 А.Комков) Текстовый файл 24-175.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита E, G, K. Определите максимальное количество идущих подряд символов, среди которых сочетания символов KEGE повторяются не более двух раз.
Решение
f=open('24-175.txt','r')
s=''
maxk=0
for i in f.read():
s+=i
if s.count('KEGE')<3:
maxk=max(maxk,len(s))
else:
s=s[s.find('KEGE')+1:]
print(maxk)
Ответ: 946
57)(№ 4105 Е.Джобс) Текстовый файл 24-168.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Определите наибольшую длину последовательности из трех различных символов, расположенных в порядке неубывания.
Например, для строки AABBAABBCCDDDEFFGF искомая последовательность – BBCCDDD, её длина – 7.
Решение
f=open('24-168.txt','r')
s='z'
us='z'
maxk=0
for i in f.read():
if len(s)==0 or s[-1]>i:
s=i
us=i
else:
if s[-1]==i:
s+=i
maxk=max(maxk,len(s))
elif s[-1]<i and len(us)<3:
s+=i
us+=i
maxk=max(maxk,len(s))
else:
s=s[s.find(us[1])-1:]
us=us[1:]+i
print(maxk)
Ответ: 6
58)(№ 4208 А.Кузнецов) Текстовый файл 24-174.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Файл разбит на строки различной длины. Замкнутой цепочкой называется подстрока (часть одной строки файла) длиной не менее трёх символов, которая начинается и заканчивается на одну и ту же букву, но внутри этих букв не содержит. Нужно определите длину самой длинной замкнутой цепочки в строках, содержащих менее 30 букв R, а также общее количество замкнутых цепочек во всех таких строках.
Пример. Исходный файл
PRIVET
INFORMATIKA
AWERTYUIOPAZXCA
В этом примере во всех строках меньше 30 букв R. В третьей строке повторяются буквы А с порядковыми номерами 1, 11, 15. Самое большое расстояние будет между позициями 1 и 11. В ответе для данного примера нужно вывести число 10 (наибольшее расстояние) и 4 (число замкнутых цепочек: INFORMATI, ATIKA, AWERTYUIOPA, AZXCA).
Решение
k,maxl=0,0
for i in open('24-174.txt').read().split('\n'):
if i.count('R')<30:
a=set()
for c in i: a.add(c)
for p in a:
if i.count(p)>1:
ss=i[i.find(p):i.rfind(p)+1]
for sl in ss.split(p):
if len(sl)+1>=2:
k+=1
maxl=max(maxl,len(sl)+1)
print(maxl,k)
Ответ: 355 119624
59)(№ 2942 Апробация 19 февраля 2022 года, Москва ) Текстовый файл z_24.txt состоит из символов А, В и С.Определите максимальное количество идущих подряд пар символов АВ или АС в прилагаемом файле.Для выполнения этого задания следует написать программу.
Решение
s=open('z_24.txt').read().replace('AC','*').replace('AB','*')
k=1
while '*'*k in s:k+=1
print(k-1)
Ответ: 2397
60)(№ 6054 ФИПИ 04.02.23) Текстовый файл 24k.txt состоит из символов A, B, C. Определите максимальную длину подпоследовательности подряд идущих символов, состоящую из троек вида
согласная + согласная + гласная
Например, для строки ABBACCABC искомая последовательность - это BBACCA, и ответом является 6.
Решение
a=open('24k.txt').read().replace('C','B')
k=0
while 'BBA'*(k+1) in a:k+=1
print(k*3)
Ответ: 6
61)(№ 6029 ФИПИ 03.02.23) Текстовый файл 24k1.txt состоит из символов E, D и F. Определите максимальную длину непрерывной последовательности символов, состоящей из чередующихся символов E и F в прилагаемом файле. Искомая последовательность может начинаться как с символа E, так и с символа F.
Для выполнения этого задания следует написать программу.
Решение
sm=''
for c in open('24k1.txt').read().replace('D',' ').split():
s=c[0]
for i in c[1:]:
if i!=s[-1]:
s+=i
if len(s)>len(sm): sm=s
else:s=i
print(len(sm))
Ответ: 11
62)(№ 5936 Е.Джобс) Текстовый файл 24-239.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита X, Y и Z. Найдите максимальную длину подстроки, которая состоит из сочетаний XY, YZ, YZZ, записанных в произвольном порядке. В ответе укажите наибольшую длину подходящей подстроки.
Например, в строке ZZXZXZZXYYZYZZYYY самая длинная подходящая подстрока – XYYZYZZ имеет длину 7.
Решение
f=open('24-239.txt')
s=f.read().replace('XY','**').replace('YZZ','***').replace('YZ','**')
print(len(max(s.replace('X',' ').replace('Y',' ').replace('Z',' ').split())))
Ответ: 314
63)(№ 11954 PRO100_ЕГЭ) Текстовый файл 24-11954.txt состоит из символов T, U, V, W, X, Y и Z.
Определите в прилагаемом файле минимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди которых символ X встречается не менее 500 раз, а символ Y не встречается совсем.
Для выполнения этого задания следует написать программу.
Решение
s=open('24_11954.txt').read()
for st in s.split('Y'):
if st.count('X')>=500:
m=[]
st=st[st.find('X'):st.rfind('X')+1]
for st1 in st.split('X'):
m.append(len(st1))
maxl=len(s)
for i in range(len(m)-499):
maxl=min(maxl,sum(m[i:i+499])+500)
print(maxl)
Ответ: 68500
64)(№ 10105 Демоверсия 2004) Текстовый файл 24-10105.txt состоит из символов T, U, V, W, X, Y и Z.
Определите в прилагаемом файле максимальное количество идущих подряд символов (длину непрерывной подпоследовательности), среди которых символ T встречается ровно 100 раз.
Для выполнения этого задания следует написать программу.
Решение
Вариант 1 (t = 54 c.)
m=[]
for s in open('24_10.txt').read().split('T'):
m.append(len(s))
maxl=0
for i in range(len(m)-101):
maxl=max(maxl,sum(m[i:i+101])+100)
print(maxl)
Вариант 2 (t = 20 c.)
m=[0]
for s in open('24_10.txt').read().split('T'):
m.append(len(s)+m[-1])
maxl=0
for i in range(1,len(m)-100):
maxl=max(maxl,m[i+100]-m[i]+100)
print(maxl)
Ответ: 133
65)(№9709 Danov2307 А.Богданов) Передатчик непрерывно передает цифры и заглавные буквы латинского алфавита (ABC…Z). Если нет полезного сообщения, то передается повторяющаяся последовательность XYZ, которая может быть прервана на любой букве вставкой фрагмента полезного сообщения. После передачи полезного сообщения продолжается передача XYZ со следующего за прерванным символом. Известно, что первый и последний символы полезного сообщения не мешают выявлению полезного сообщения. Длина фрагмента повторяющейся последовательности не менее трех символов. Найдите максимальную длину фрагмента полезного сообщения.
Пример: XYZXYZXYUSEFULLMESSAGEZXYZXYZXYAVERYUSEFULLMESSAGEZXYZXYZXYZ
Файлы к заданию:24_9709.txt
Решение
a=list(open('24_9709.txt').read().replace('XYZ',' ').split())
ml=[]
for s in a:
l=len(s)
if s[0]=='X': l-=3
ml.append(l)
print(max(ml))
Ответ: 1339
66)(№2684) Текстовый файл состоит не более чем из 108 символов прописных латинских букв (A, B, .., Z).
Определите, какая буква встречается в текстовом файле максимальное количество раз. Если таких букв несколько, запишите их в ответе в алфавитном порядке. Ответ необходимо записать прописными (заглавными) буквами.
Файлы к заданию:24_2684.txt
Решение
a=open('24_2684.txt').read()
b=''
maxk=0
for c in sorted(set(a)):
k=a.count(c)
if k>maxk: maxk=k;b=c
elif k==maxk: b+=c
print(b)
Ответ: DEV
67)(№2427 В.Н.Шубинкин) Текстовый файл содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Убывающей подпоследовательностью будем называть последовательность символов, расположенных в порядке уменьшения их номера в кодовой таблице символов ASCII. Запишите в ответе наибольшую убывающую подпоследовательность. Если таких последовательностей несколько, запишите первую из них.
Файлы к заданию: 24_2427.txt
Решение
a=open('24_2427.txt').read()
s,maxs=a[0],''
for c in a[1:]:
if s[-1]>c:
s+=c
if len(maxs)<len(s): maxs=s
else: s=c
print(maxs)
Ответ: zrqjWRC1
68)(№11241 М.Ишимов) Текстовый файл состоит из символов, обозначающих прописные буквы латинского алфавита.
Определите в прилагаемом файле максимальное количество идущих подряд символов, среди которых нет ни одной буквы из набора букв A,B,C и D.
Для выполнения этого задания следует написать программу.
Файлы к заданию: 24_11241.txt
Решение
a=open('24_11241.txt').read()
for c in 'ABCD': a=a.replace(c,' ')
b=[]
for s in a.split(): b.append(len(s))
print(max(b))
Ответ: 193
69)(№8166 А.Рогов) Текстовый файл состоит из символов, обозначающих прописные буквы латинского алфавита. Определите максимальное количество идущих подряд пар символов, каждая из которых содержит только символы из набора букв A, B и C (с учётом повторений).
Для выполнения этого задания следует написать программу.
Пример входных данных: QWAABAD
Для приведенного примера максимальное количество идущих подряд пар это 2: АА и ВА.
Файлы к заданию: 24_8166.txt
Решение
a=open('24_8166.txt').read()
for c in 'ABC': a=a.replace(c,'*')
k=1
while '**'*k in a: k+=1
print(k-1)
Ответ: 9
70)(№12111 М.Попков) Текстовый файл содержит зашифрованное письмо Санта-Клаусу, состоящее только из символов H, P, N, Y, с просьбой о подарке. Какой подарок хочет ребенок зависит от максимального количества идущих подряд троек символов HPY или NYN в прилагаемом файле.
Искомая последовательность должна состоять только из троек HPY, или только из троек NYN, или только из троек HPY и NYN.
Помогите Санте расшифровать послание, определите данное максимальное значение.
Для выполнения этого задания следует написать программу.
Файлы к заданию: 24_12111.txt
Решение
a=open('24_12111.txt').read()
for c in ['NYN','HPY']: a=a.replace(c,'*')
k=1
while '*'*k in a: k+=1
print(k-1)
Ответ: 16
71)(№12254 ЕГКР 16.12.23) Текстовый файл состоит из символов R, S и Q. В прилагаемом файле определите максимальное количество символов в непрерывной подпоследовательности, состоящей из идущих подряд групп символов RSQ в указанном порядке. При этом в начале и в конце искомой последовательности группа символов RSQ может быть неполной.
Искомая подпоследовательность должна содержать не менее одной полной группы символов RSQ.
Например, условию задачи удовлетворяют: SQRSQRSQR; QRSQRS и т.п.
Для выполнения этого задания следует написать программу.
Файлы к заданию: 24_12254.txt
Решение
a=open('24_12254.txt').read().replace('RSQ','***')
a=a.replace('SQ*',' sq*').replace('Q*',' q*')
a=a.replace('*RS','*rs ').replace('*R','*r ')
for c in 'RSQ': a=a.replace(c,' ')
b=[]
for s in a.split():
k=s.count('r')+s.count('q')
if k==2 and 's' in s or k==0: b.append(len(s))
print(max(b)//3*3)
Ответ: 54
72)(№16388 ЕГКР 27.04.24) Текстовый файл состоит из символов K, L, M и N. В прилагаемом файле определите максимальное количество символов в непрерывной подпоследовательности, состоящей из идущих подряд групп символов KLMN в указанном порядке, при этом в начале и в конце искомой последовательности группа символов KLMN может быть неполной.
Искомая последовательность должна содержать не менее одной полной группы символов KLMN. Например, условию задачи удовлетворяют: MNKLMNKLMNK, или NKLMNKLMNKL, или KLMNKLMNKLM и т.п.
Для выполнения этого задания следует написать программу.
Файлы к заданию: 24_16388.txt
Решение
a=open('24_16388.txt').read()
k=1
while 'KLMN'*k in a: k+=1
k-=1
s='KLMN'*k
for c in 'KLMN':
if s+c in a: s+=c
else:break
for c in 'NMLK':
if c+s in a: s=c+s
else:break
print(len(s))
Ответ: 182
73)(№6052) Текстовый файл 24-241.txt состоит не более чем из 106 символов и содержит только латинские буквы A, B, C, D, E, F, O. Определите максимальное количество идущих подряд групп символов вида «гласная + гласная + согласная».
Решение
a=open('24-241.txt').read()
for c in 'AEO': a=a.replace(c,'*')
for c in 'BCDF': a=a.replace(c,'+')
k=1
while '**+'*k in a: k+=1
print(k-1)
Ответ: 14
74)(№5645 П.Финкель) Текстовый файл 24-230.txt состоит не более чем из 106 символов и содержит буквы английского алфавита и цифры. Определите максимальное число в этом файле, ограниченное двумя парами символов ZZ и удовлетворяющее маске «8???54???22», где символ ? обозначает любую цифру. Пример такого числа: 81235412322. Найдите произведение нечётных цифр найденного числа.
Решение
def f(s):
a=sorted(s)
if len(a)>0 and a[-1]>='A': return 0
return 1
maxc=0
a=list(open('24-230.txt').read().split('ZZ'))
for s in a:
if f(s) and len(s)==11 and s[0]+s[4:6]+s[-2:]=='85422':
maxc=max(maxc,int(s))
p=1
for c in str(maxc):
if c in '13579': p*=int(c)
print(p)
Ответ: 76545
75)(№4923) Текстовый файл 24-196.txt содержит строку из заглавных латинских букв X, Y и Z, всего не более чем из 106 символов. Определите максимальное количество идущих подряд пар символов ZX или ZY.
Решение
a=open('24-196.txt').read().replace('ZX','**').replace('ZY','**')
k=0
while '**'*(k+1) in a: k+=1
print(k)
Ответ: 177
76)(№6782 ЕГЭ-2023) Текстовый файл 24-264.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита и цифры. Определите максимальную длину подстроки, в которой ни одна буква не стоит рядом с буквой и ни одна цифра не стоит рядом с цифрой.
Решение (t = 1.5c.)
s=''
for c in open('24-264.txt').read():
if c in '0123456789': s+='#'
else:s+='*'
i1=maxl=0
for i in range(1,len(s)):
if s[i]==s[i-1]:i1=i
else:maxl=max(maxl,i-i1+1)
print(maxl)
Ответ: 18
77)(№6903 П.Финкель) Текстовый файл 24-276.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита и десятичные цифры. Определите максимальную длину последовательности букв F, которая ограничена по краям одинаковыми нечётными цифрами.
Решение (t = 1.53c.)
s='*'+open('24-276.txt').read()+'*'
m=[]
i1=0
for i in range(1,len(s)-1):
if s[i]=='F' and s[i-1]!='F':i1=i
elif s[i]!='F':
if i-i1>0 and s[i1:i].count('F')==i-i1:
if s[i1-1]==s[i] and s[i] in '13579': m.append(s[i1-1:i+1])
i1=i
maxl=0
for c in m:
maxl=max(maxl,len(c))
print(maxl-2)
Ответ: 468
78)(№2543 К.Амеличев) Текстовый файл 24-5.txt содержит последовательность из символов «(»и «)», всего не более 106 символов. Определите, с какого по счёту символа от начала файла начинается 10000-я пара скобок «()» (нумерация символов начинается с 1).
Решение
a=open('24-5.txt').read().replace('()','*')
p=k=0
for i in range(len(a)):
if a[i]=='*': k+=1;p+=2
else: p+=1
if k==10000: break
print(p-1)
Ответ: 40451
79)(№6526) Текстовый файл 24-259.txt состоит не более чем из 106 символов и содержит только символы A, T, G, C. Найдите длину наибольшей цепочки символов, которая начинается с ATG, заканчивается на TAA и между этими группами символов не содержит цепочек TAA, TGA и TAG.
Решение
a=open('24-259.txt').read()
k=a.count('ATG')
lk=len(a)
maxl=0
for i in range(k):
ist=a.find('ATG')
l=3
while not('TAA' in a[ist:ist+l]) and ist+l<=lk:
l+=1
b=a[ist:ist+l]
#print(b)
if not('TGA' in b[3:] or 'TAG' in b[3:]):
maxl=max(maxl,len(b))
a=a.replace('ATG','***',1)
print(maxl)
Ответ: 124