Тема 24. Обработка символьной информации

24.03 Прочие прототипы

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка символьной информации
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 21#23511Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 106  заглавных латинских букв (A...Z)  . Текст разбит на строки различной длины. Определите количество строк, в которых буква S  встречается столько же раз, сколько и буква X  .  

Вложения к задаче
Показать ответ и решение
f = open("Задание_24__ktcx.txt")
a = [str(s) for s in f]

ans = 0
for i in range(len(a)):
    if a[i].count("S") == a[i].count("X"):
        ans += 1
print(ans)

Ответ: 48

Ошибка.
Попробуйте повторить позже

Задача 22#24425Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 107  букв X, Y, Z, x, y, z.

Определите минимальную положительную разность между максимальной длиной подстроки, состоящей из одной и той же заглавной буквы, и максимальной длиной подстроки, состоящей из той же самой строчной буквы. Например, разность между длиной подстроки, состоящей только из Y  , и длиной подстроки, состоящей только из y  . Для выполнения этого задания следует написать программу.

Вложения к задаче
Показать ответ и решение
file = open("Задание_24__mixs.txt")
text = file.readline()
symb = ’XYZxyz’
counter = [0] * 6
maxim = [0] * 6
for i in range(len(text) - 1):
    if text[i] == text[i + 1]:
        for j in range(6):
            if text[i] == symb[j]:
                counter[j] += 1
                maxim[j] = max(maxim[j], counter[j])
    else:
        counter = [0] * 6
m = 0
ind = 0
for i in range(len(maxim[:3])):
    if maxim[i] > m:
        m = maxim[i]
        ind = i
print(maxim[ind] - maxim[ind + 3])

Ответ: 8

Ошибка.
Попробуйте повторить позже

Задача 23#25109Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 106  заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых встречается комбинация Q ∗∗A  , где звездочка обозначает один любой символ.

Вложения к задаче
Показать ответ и решение
f = open("24.txt").readlines()

c = 0
for s in f:
    for i in range(len(s)-3):
        if s[i] == "Q" and s[i+3] == "A":
            c += 1
            break

print(c)

Ответ: 768

Ошибка.
Попробуйте повторить позже

Задача 24#25622Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 106  символов латинского алфавита. Определите количество пар символов, которые являются симметричными. Симметричной парой называют такие два символа, которые расположены на одинаковом удалении от концов строки.

Например, в строке alsdbefska две симметричные пары – aa, ss.

Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.

Вложения к задаче
Показать ответ и решение
f = open("Задание_24__cke9__rko6.txt")
s = f.readline()

counter = 0
n = len(s)
for i in range(n//2):
    counter += s[i] == s[n-i-1]
print(counter)

Ответ: 19085

Ошибка.
Попробуйте повторить позже

Задача 25#25784Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 106  строчных букв английского алфавита (a,b,...,z).  Определите разность между количеством символов, встречающихся в файле максимальное и минимальное количество раз. Для выполнения этого задания следует написать программу.

Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_24__d0rb.txt’)
s = f.readline()
n = len(s)
alf = [0] * 26
k = 0
#ord(’a’) = 97
for i in range(n):
    alf[ord(s[i]) - 97] += 1
print(max(alf) - min(alf))

Ответ: 714

Ошибка.
Попробуйте повторить позже

Задача 26#25970Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 106  заглавных латинских букв (A..Z )  . Текст разбит на строки различной длины. Определите количество строк, в которых буква S  встречается столько же раз, сколько и буква X  .

Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_24__fpxa.txt’)
ans = 0
for i in f:
    s = i
    counter_x = 0
    counter_s = 0
    for j in range(len(s)):
        if s[j] == ’X’:
            counter_x += 1
        if s[j] == ’S’:
            counter_s += 1
    ans += counter_s == counter_x
print(ans)

Ответ: 48

Ошибка.
Попробуйте повторить позже

Задача 27#25997Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

Текстовый файл состоит не более чем из 106  символов — строчных и заглавных латинских букв и цифр. Определите максимальное число, состоящее только из нечётных цифр.

Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_24__g57s.txt’)
s = f.readline()
cur = ’’
maxim = 0
for i in range(len(s)):
    if s[i].isdigit():
        if int(s[i]) % 2 == 1:
            cur += s[i]
            maxim = max(maxim, int(cur))
    else:
        cur = ’’
print(maxim)

Ответ: 7517

Ошибка.
Попробуйте повторить позже

Задача 28#26986Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

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

В строках, содержащих менее 25 букв K, нужно определить и вывести максимальное расстояние между одинаковыми буквами в одной строке.

Пример. Исходный файл:

YOU

PASS

THE

EGE

В этом примере во всех строках меньше 25 букв K. Самое большое расстояние между одинаковыми буквами — в четвертой строке между буквами E, расположенными в строке на 1-й и 3-й позициях. В ответе для данного примера нужно вывести число 2.

Вложения к задаче
Показать ответ и решение
file = open("24.txt")

a = []
s = ’QWERTYUIOPASDFGHJKLZXCVBNM’
maxim = 0

for i in range(1000):
    a.append(file.readline())

# find() выводит индекс первого вхождения некоторого символа
# rfind() выводит индекс последнего вхождения некоторого символа
for i in range(len(a)):
    if a[i].count(’K’) < 25:
        for j in s:
            maxim = max(maxim, a[i].rfind(j) - a[i].find(j))

print(maxim)

Ответ: 995

Ошибка.
Попробуйте повторить позже

Задача 29#29371Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов А, М и R. Определите общее количество сочетаний символов типа AR или AM. Для выполнения этого задания следует написать программу. Гарантируется, что хотя бы одно из таких сочетаний есть.

Например, в последовательности символов AARMAM, идущих подряд, есть две подходящие пары символов.

Вложения к задаче
Показать ответ и решение
file = open("Задание_24__ra5a.txt")
text = file.readline()
print(text.count("AR") + text.count("AM"))

Ответ: 263828

Ошибка.
Попробуйте повторить позже

Задача 30#29873Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  . Определите сколько раз в файле встречается символ B  .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_1_ДЗ". В ответе запишите иcкомое количество.

Вложения к задаче
Показать ответ и решение
# Решение №1
s = open("Задание_1_ДЗ.txt").read()
count = 0
for i in range(len(s)):
    if (s[i] == "B"):
        count += 1
print(count)

# Решение №2
print(s.count("B"))

Ответ: 333297

Ошибка.
Попробуйте повторить позже

Задача 31#29874Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  . Определите сколько раз в файле встречается сочетание символов BA  .

Для выполнения этого задания следует написать программу. В ответе запишите иcкомое количество.

Вложения к задаче
Показать ответ и решение
# Решение 1:

f = open("Задание_2_ДЗ__tceu.txt").read()
count = 0
for i in range(len(f) - 1):
    if f[i] == "B" and f[i + 1] == "A":
        count += 1
print(count)


# Решение 2:

print(f.count("BA"))

Ответ: 111019

Ошибка.
Попробуйте повторить позже

Задача 32#29880Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов A  , B  , C  , D  , E  . Найдите количество повторений сочетания BB  в тексте, если встретилось сочетание, содержащее больше двух B  подряд, то ответ не увеличивается. Например, для последовательности BBBABBCBAAAD  ответ будет равен 1.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_8_ДЗ". В ответе запишите искомое количество символов.

Вложения к задаче
Показать ответ и решение
s = open("Задание_8_ДЗ.txt").read()

count = 0
c = 1
for i in range(len(s) - 1):
    if s[i] == s[i + 1] and s[i] == "B":
        c += 1
    else:
        if c == 2:
            count += 1
        c = 1

print(count)

Ответ: 25697

Ошибка.
Попробуйте повторить позже

Задача 33#29887Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 103  строк, каждая из которых состоит не более чем из 106  заглавных букв латинского алфавита. Найдите количество симметричных пар (будем называть симметричной парой совпадение символов относительно середины строки) в строке минимальной длины, если таких строк несколько, то использовать первую.

Пример: для строк ABRT  RCA  , AABBAA  , AORT  A  , минимальную длину имеет строка AORT  A  , относительно середины строки симметричными являются символы A

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_15_ДЗ". В ответе запишите искомое количество.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_24_ДЗ.txt’)
count = 0
minim = 1000000000
s = ’’
for i in f:
    line = i.strip() #убираем символ ’\n’
    if (len(line) < minim):
        minim = len(line)
        s = line
n = len(s)

for i in range(n // 2):
    if (s[i] == s[n - i - 1]):
        count += 1
print(count)

 

Ответ: 198

Ошибка.
Попробуйте повторить позже

Задача 34#29892Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Сколько раз в файле встречается подстрока TOK  не в составе подстроки ST OK  .

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_20_ДЗ". В ответе запишите искомое количество раз.

Вложения к задаче
Показать ответ и решение
f = open("Задание_20_ДЗ.txt").read()
print(f.count("TOK") - f.count("STOK"))

Ответ: 58

Ошибка.
Попробуйте повторить позже

Задача 35#29900Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Посчитайте количество гласных и согласных букв в файле.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_28_ДЗ". В ответе запишите модуль разницы между количеством гласных и согласных букв.

Английский алфавит: ABCDEF   GHIJKLM    NOP QRST  UV W XY Z

Вложения к задаче
Показать ответ и решение
f = open(’Задание_28_ДЗ.txt’).read()  
gl = ’EIOAU’  
count_gl = 0  
count_sogl = 0  
for i in range(len(f)):  
    if (f[i] in gl): # проверка наличия символа в строке  
        count_gl += 1  
    else:  
        count_sogl += 1  
print(abs(count_gl - count_sogl))

 

Ответ: 615748

Ошибка.
Попробуйте повторить позже

Задача 36#29905Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов, которые являются цифрами от 1 до 9, знаками плюс, минус и одного знака равно, стоящего в конце. Вычислите значение данного выражения.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_33_ДЗ". В ответе запишите значение данного выражения.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_33_ДЗ.txt’).read()  
s = int(f[0]) # первый символ  
for i in range(1, len(f) - 1, 2): # ходим только по знакам  
    if (f[i] == ’+’):  
        s += int(f[i + 1])  
    else:  
        s -= int(f[i + 1])  
print(s)

 

Ответ: 549

Ошибка.
Попробуйте повторить позже

Задача 37#29906Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов, которые являются цифрами от 1 до 9, знаками плюс, минус и одного знака равно. Вычислите значение выражений до и после знака равно.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_34_ДЗ". В ответе запишите большее из значений, если они равны, то запишите 1.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_34_ДЗ.txt’).read()
s = int(f[0]) # первый символ
s1 = 0
key = True
for i in range(1, len(f) - 1, 2): # ходим только по знакам
    if key: # до знака равно
        if (f[i] == ’+’):
            s += int(f[i + 1])
        elif (f[i] == ’=’):
            key = False
            s1 += int(f[i + 1]) # первый символ после знака равно
        else:
            s -= int(f[i + 1])
    else:
        if (f[i] == ’+’):
            s1 += int(f[i + 1])
        else:
            s1 -= int(f[i + 1])
print(max(s, s1) * (s != s1))

 

Ответ: 637

Ошибка.
Попробуйте повторить позже

Задача 38#29908Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов, которые являются цифрами от 1 до 9. Вам необходимо найти знакопеременную сумму цифр данного выражения. Считать, что первый знак — "+". Пример для строки "1234" значение суммы равно 1 + 2− 3+ 4 = 4

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_36_ДЗ". В ответе запишите значение знакопеременной суммы.

Вложения к задаче
Показать ответ и решение
f = open("Задание_36_ДЗ.txt").read()  
s = int(f[0])  
for i in range(1, len(f)): # отказ от if  
    s += int(f[i]) * (i % 2 != 0) - int(f[i]) * (i % 2 == 0)  
print(s)

 

Ответ: 1098

Ошибка.
Попробуйте повторить позже

Задача 39#29909Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  символов, которые являются цифрами от 1 до 9. Вам необходимо найти количество и сумму двузначных палиндромов в данном файле. Пример для строки "11122"количество равно 3, сумма равна 44.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_37_ДЗ". В ответе запишите количество и сумму палиндромов.

Вложения к задаче
Показать ответ и решение
f = open("Задание_37_ДЗ.txt").read()  
count = 0  
sum_pal = 0  
for i in range(len(f) - 1):  
    if (f[i] == f[i + 1]):  
        count += 1  
        sum_pal += int(f[i] + f[i + 1])  
print(count, sum_pal)

 

Ответ: 110942 6098147

Ошибка.
Попробуйте повторить позже

Задача 40#29914Максимум баллов за задание: 1

Текстовый файл состоит не более чем из 106  заглавных букв латинского алфавита. Локальным максимумом называется символ, id которого в таблице ASCII больше номеров предыдущего и последующего символа в строке. Будем считать, что первый и последний элемент строки не могут быть локальными максимумами. Найдите максимальное расстояние между двумя соседними локальными максимумами, расстояние в данной задаче это разность индексов.

Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_42_ДЗ". В ответе запишите искомое расстояние.

Вложения к задаче
Показать ответ и решение
f = open(’Задание_42_ДЗ.txt’)  
s = f.read()  
ar = []  
for i in range(1, len(s) - 1):  
    if s[i] > s[i + 1] and s[i] > s[i - 1]:  
        ar.append(i)  
maxim = 0  
for i in range(len(ar) - 1):  
    maxim = max(maxim, ar[i + 1] - ar[i])  
print(maxim)

 

Ответ: 20
Рулетка
Вы можете получить скидку в рулетке!