Главная страница

ЕГЭ 24 ОБРАБОТКА СТРОК. Withas это контекстный менеджер, в данном случае он открывает указанный файл в режиме чтения второй аргумент r


Скачать 32.82 Kb.
НазваниеWithas это контекстный менеджер, в данном случае он открывает указанный файл в режиме чтения второй аргумент r
Дата30.09.2022
Размер32.82 Kb.
Формат файлаdocx
Имя файлаЕГЭ 24 ОБРАБОТКА СТРОК.docx
ТипДокументы
#706883

ЕГЭ 24 ОБРАБОТКА СТРОК

 with open("k7.txt", "r") as F:
  s = F.readline()
конструкция with-as – это контекстный менеджер, в данном случае он открывает указанный файл в режиме чтения (второй аргумент «r» при вызове функции open), записывает ссылку на него в файловую переменную F, выполняет тело блока (читает первую строку файла в переменную s) и закрывает (освобождает) файл
или
f=open('k8-0.txt')
s=f.readline()
 
len(s) – определяет количество символов в строке
Символы в стоке нумеруются  с 0.
 
 (Демо-2021).Текстовый файл 24.txt состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны. Для выполнения этого задания следует написать программу.
 
with open( "24.txt", "r" ) as F:
  s = F.readline()
max=1
k=1
for i in range(1, len(s)):
  if s[i] 
!= s[i-1]:
    k=k+1
    if k > max:
      max = k
  else:
    k = 1
print( max )
ответ 35
 
(
Демо-2022).Текстовый файл 2022.txt состоит из символов PQи S. Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет идущих подряд символов P. Для выполнения этого задания следует написать программу.
 
f=open('2022.txt')
s=f.readline()
max=0
k=1
for i in range(0, len(s)-1):
if s[i] =='P' and s[i+1]== 'P':
k=1
else:
k = k+1
if k>max: max=k
printmax )
 
ответ 188
 
№1
 В текстовом файле k7-0.txt находится цепочка из символов латинского алфавита A, B, C. Найдите длину самой длинной подцепочки, состоящей из символов C.
 
f=open('k7-0.txt')
s=f.readline()
max=0
k=1
for i in range(0, len(s)-1):
  if s[i] !='C' and s[i+1]!=
'C':
k=1
else:
k = k+1
if k>max: max=k
printmax )
 
ответ 0
 
№21
 В текстовом файле k7a-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E. Найдите длину самой длинной подцепочки, состоящей из символов A, B или C (в произвольном порядке).
 
f=open('k7a-1.txt')
s=f.readline()
max=0
k=0
for i in range(0, len(s)):
if s[i] =='A' or s[i] =='B' or s[i] =='C':
k=k+1
if k>max: max=k
else:
k = 0
print( max )
 
Ответ 16
 
№24 В текстовом файле k7a-4.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, не содержащей символа D.
 
f=open('k7a-4.txt')
s=f.readline()
max=0
k=1
for i in range(0, len(s)-1):
if s[i]!='D' and s[i+1]!='D':
k=k+1
if k>max: max=k
else:
k = 1
print( max )
 
ответ 44
 
№54 В текстовом файле k8-6.txt находится цепочка из символов, в которую могут входить заглавные буквы латинского алфавита A…Z и десятичные цифры. Найдите длину самой длинной подцепочки, состоящей из одинаковых символов. Если в файле несколько подходящих цепочек одинаковой длины, нужно взять первую из них. Выведите сначала символ, из которого строится эта подцепочка, а затем через пробел – длину этой подцепочки.
 
f=open('k8-6.txt')
s=f.readline()
max=0
k=1
for i in range(0, len(s)-1):
if s[i]== s[i+1]:
k=k+1
if k>max:
max=k
b=s[i]
else:
k = 1
print( b,max )
 
Ответ 9 5 
Файлы скачать
№ 25 (А.М. Кабанов) В текстовом файле k7a-5.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, не содержащей символов C и F.
f=open('k7a-5.txt')
s=f.readline()
max=0
k=0
for i in range(0, len(s)):
  if s[i]!='C' and s[i]!='F':
    k=k+1
    if k>max: max=k
  else:
    k = 0
print( max )
ответ 19
 
№ 34 (А.М. Кабанов) В текстовом файле k7c-2.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите количество цепочек длины 3, удовлетворяющих следующим условиям:
·         1-й символ – один из A, C, E;
·         2-й символ – один из A, D, F, который не совпадает с первым;
·         3-й символ – один из A, B, F, который не совпадает со вторым.
 
f=open('k7c-2.txt')
s=f.readline()
max=0
k=0
for i in range(0, len(s)-2):
  if (s[i]=='A' or s[i]=='C' or s[i]=='E' ) and ((s[i+1]=='A' or s[i+1]=='D' or s[i+1]=='F' ) and s[i+1]!= s[i] ) and ((s[i+2]=='A' or s[i+2]=='B' or s[i+2]=='F' ) and s[i+2]!= s[i+1] ):
    k=k+1
print( max )
 
ответ 891
№37 (А.М. Кабанов) В текстовом файле k7c-5.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите количество цепочек длины 5, в которых соседние символы не совпадают.
 
f=open('k7c-5.txt')
s=f.readline()
k = 0
for i in range(len(s)-4):
    if s[i]!=s[i+1] and s[i+1]!=s[i+2] and s[i+2]!=s[i+3] and s[i+3]!=s[i+4]:
      k += 1
print(k)


ответ 4904
2 В текстовом файле k7-3.txt находится цепочка из символов латинского алфавита A, B, C. Найдите длину самой длинной подцепочки, состоящей из символов C.
 
f=open('k7-3.txt')
s=f.readline()
k=0
m=0
for i in range (0,len(s)):
    if s[i]=='C':
        k=k+1
        if k>m: m=k
    else:
        k=0
print (m)
 
ответ 1
 
№23
 (А.М. Кабанов) В текстовом файле k7a-3.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, состоящей из символов A, B, E, F (в произвольном порядке).
 
f=open('k7a-3.txt')
s=f.readline()
k=0
m=0
for i in range (0,len(s)):
    if s[i]=='A' or  s[i]=='B' or  s[i]=='E' or  s[i]=='F':
        k=k+1
        if k>m: m=k
    else:
        k=0
print (m)
 
Ответ  20
 
№25 (А.М. Кабанов) В текстовом файле k7a-5.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, не содержащей символов C и F.
 
f=open('k7a-5.txt')
s=f.readline()
k=0
m=0
for i in range (0,len(s)):
    if s[i]!='C' and  s[i]!='F':
        k=k+1
        if k>m: m=k
    else:
        k=0
print (m)
 
Ответ 19


№28 (А.М. Кабанов) В текстовом файле k7b-2.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите максимальную длину цепочки вида DBACDBACDBAC.... (состоящей из фрагментов DBAC, последний фрагмент может быть неполным).
 
f=open('k7b-2.txt')
s=f.readline()
k=0
m=0
for i in range (0,len(s)):
    if (s[i]=='D' and k%4==0) or (s[i]=='B' and k%4==1) or (s[i]=='A' and k%4==2) or (s[i]=='C' and k%4==3):
        k=k+1
        if k>m: m=k
    else:
        if s[i]=='D':
            k=1
        else:
            k=0
print (m)
 
Ответ 95
 
№33 (А.М. Кабанов) В текстовом файле k7c-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E. Найдите количество цепочек длины 3, удовлетворяющих следующим условиям:
·         1-й символ – один из символов B, C или D;
·         2-й символ – один из символов B, D, E, который не совпадает с первым;
·         3-й символ – один из символов B, C, E, который не совпадает со вторым.
 
f=open('k7c-1.txt')
s=f.readline()
k=0
for i in range (0,len(s)-2):
    if (s[i]=='B' or s[i]=='C' or s[i]=='D') and ((s[i+1]=='B' or s[i+1]=='D' or s[i+1]=='E') and s[i]!=s[i+1]) and ((s[i+2]=='B' or s[i+2]=='C' or s[i+2]=='E') and s[i+1]!=s[i+2]):
        k=k+1
 
print (k)
 
ответ 1280
 
№52 В текстовом файле k8-0.txt находится цепочка из символов, в которую могут входить заглавные буквы латинского алфавита A…Z и десятичные цифры. Найдите длину самой длинной подцепочки, состоящей из одинаковых символов. Если в файле несколько цепочек одинаковой длины, нужно взять первую из них. Выведите сначала символ, из которого строится эта подцепочка, а затем через пробел – длину этой подцепочки.
 
f=open('k8-0.txt')
s=f.readline()
k = 1
m=0
for i in range(len(s)-1):
    if s[i]==s[i+1]:
        k += 1
        if k>m:
            m=k
            d=s[i]
    else:
        k=1
print(d,m)
 
Ответ 2 3
 
№72 В текстовом файле k8-0.txt находится цепочка из символов, в которую могут входить заглавные буквы латинского алфавита A…Z и десятичные цифры. Найдите длину самой длинной подцепочки, состоящей из одинаковых символов. Для каждой цепочки максимальной длины выведите в отдельной строке сначала символ, из которого строится эта цепочка, а затем через пробел – длину этой цепочки.
 
f=open('k8-0.txt')
s=f.readline()
k = 1
m=0
t1=[]
t2=[]
for i in range(len(s)-1):
    if s[i]==s[i+1]:
        k += 1
 
    else:
        t1.append(k)
        t2.append(s[i])
        k=1
p=max(t1)
for i in range(len(t1)):
    if t1[i]==p:
        print (t2[i],t1[i])
 
Ответ
2 3
7 3
7 3
5 3
 
№77 Текстовый файл k8-1.txt состоит не более чем из 106 символов. Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
 
f=open('k8-1.txt')
s=f.readline()
k = 1
m=0
 
for i in range(len(s)-1):
    if s[i]!=s[i+1]:
        k += 1
        if k>m: m=k
    else:
        k=1
print (m)
 
Ответ 159 

39 В текстовом файле  k7-m1.txt находится цепочка из прописных (заглавных) символов латинского алфавита A, B, C. Найдите длину самой короткой подцепочки, состоящей из символов C (C-подцепочки). В ответе через пробел укажите: длину найденной подцепочки (если C-подцепочек нет, то 0), количество C-подцепочек и длину исходной цепочки.
f=open('k7-m1.txt ')
s=f.readline()
s=s+'!'
m=0
k=0
t=[]
for i in range(0, len(s)-1):
    if s[i] =='C' and s[i+1] =='C':
    k=k+1
  else:
      if s[i] =='C' and s[i+1] !='C':
          t.append(k+1)
          k = 0
          m=m+1
#print( s,t)    
print( min(t),m)
print (len(s)-1)
 
ответ  5 6 126
 
№41 В текстовом файле k7-m3.txt находится цепочка из прописных (заглавных) символов латинского алфавита A, B, C. Найдите все подцепочки, состоящие из символов C (C-подцепочки) длиной не более четырех. В ответе через пробел укажите: порядковый номер найденной подцепочки (начиная с единицы) при проходе по исходной цепочке слева направо, длину подцепочки и саму подцепочку, заменив в ней, начиная со второго символа «С», большие «С» на «с» строчные (маленькие). Гарантируется, что в исходной цепочке есть C-подцепочки.
f=open('k7-m3.txt ')
s=f.readline()
s=s+'!'
k=0
t=[]
for i in range(0, len(s)-1):
    if s[i] =='C' and s[i+1] =='C':
        k=k+1
    else:
        if s[i] =='C' and s[i+1] !='C':
            t.append(k+1)
            k = 0
           
r=[]
for i in range(0, len(t)):
    if t[i]<5: r.append(t[i])
 
for i in range(0, len(r)):
    
    print (i+1, r[i],"C", end="")
    for u in range (0,r[i]-1):
        print ("c",end="")
    print ("")
 
Ответ
1 4 Cccc
2 3 Ccc
3 1 C
4 2 Cc
 
№43 В текстовом файле k7-m5.txt находится цепочка из прописных (заглавных) символов латинского алфавита A, B, C. В исходной цепочке замените все найденные C-подцепочки на подцепочки, содержащие длину текущей С-подцепочки с последующей текущей C-подцепочкой с замененными символами «С» большими на «с» маленькие. В ответе в трех строчках выведите:
1) количество C-подцепочек;
2) левые 15 символов, пробел и правые 15 символов исходной цепочки;
3) левые 15 символов, пробел и правые 15 символов преобразованной цепочки.
f=open('k7-m5.txt ')
s=f.readline()
s=s+'!'
m=0
k=0
t=[]
r=[]
d=''
for i in range(0,len(s)-1):
    if s[i] =='C' and s[i+1] =='C':
        k=k+1
         
                   
    else:
        if s[i] =='C' and s[i+1] !='C':
            t.append(k+1)
            r.append(i-k)
          
            k = 0
            m=m+1
   
for i in range(0,len(s)-1):
    if s[i] !='C':
        d=d+s[i]
    else:
        for x in range(0,m):
            if i==r[x]:
                p=str(t[x])
                d=d+p
                for j in range(0,t[x]):
                    d=d+s[i]
s1=''
for i in range(0,len(d)):
    if d[i] !='C':
        s1=s1+d[i]
    else:
        s1=s1+'c'
 for i in range(0,15):
    print (s[i],end="")
print(" ",end="")
for i in range(len(s)-15,len(s)-1):
    print (s[i],end="")
 
print ("")
 
for i in range(0,15):
    print (s1[i],end="")
print(" ",end="")
for i in range(len(s1)-15,len(s1)):
    print (s1[i],end="")
 
Ответ
18
AAACCAAABBBCBBB    BBBCCCCCCABCCCC
AAA2ccAAABBB1cB     B6ccccccAB4cccc

ЕГЭ 24 - №143 Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых встречается комбинация Z*RO, где звёздочка обозначает любой символ.

 

F=open("24-s1.txt")

s = F.readline()

str=0 #количество строк

while s>0:

    k=0 #количество символов

    for i in range(1,len(s)-2):

        if s[i-1]=="Z" and s[i+1]=="R" and s[i+2]=="O":

            k=k+1

    if k>0:

        str=str+1

    s=F.readline()

print(str)

 

ответ 59

Задание 24_9 вариант.

Текстовый файл состоит не более чем из 1 200 000 символов X, Y, и Z. Определите максимальное количество идущих подряд символов, среди которых нет подстроки XZZY. Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
with open('24_9.txt')as f:

s = f.read()

s = s.replace('XZZY','AAA AAA')

print(len(max(s.split(),key=len)))
with open("24_9.txt") as f:

n = list(f.readline())

c = 0

c1 = 0

for i in range(0, len(n) - 3):

if n[i] == "X":

if n[i + 1] == "Z":

if n[i + 2] == "Z":

if n[i + 3] == "Y":

c = max(c1, c)

c1 = 3

else:

c1 += 1

else:

c1 += 1

else:

c1 += 1

else:

c1 += 1

print(c)


Задание 24_11 вариант.

Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт. Строки содержат только заглавные буквы латинского алфавита (ABC…Z).

Необходимо найти строку, содержащую наименьшее количество букв N (если таких строк несколько, надо взять ту, которая находится в файле раньше), и определить, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая позже стоит в алфавите.

with open ('24.txt') as f:

minN = 10*30

slovar = {}

for line in f:

countN = line.count ('N')

if countN

minN = countN

s = line

for x in s:

if x in slovar:

slovar [x] +=1

else:

slovar [x] =1



print (slovar)



del slovar ['\n']

print (slovar)



mx = max (slovar.values())

print (mx)



for y in slovar.items():

if y[1] == max (slovar.values()):

print (y[0])



with open ('24.txt') as f:

print (f.read().count ('Y'))


написать администратору сайта