Задача к ЕГЭ по информатике на тему «поиск символа/строки по частоте» №8

Текстовый файл состоит не более чем из 104  строк, каждая из которых состоит не менее чем из 10 и не более чем из      103  заглавных букв A  , B  , C  , D  . Найдите количество строк, в которых либо изначально есть 10-символьный палиндром, либо его можно получить перестановкой пары символов из данной подстроки. Например, для строки ABAB  можно поменять символы A  и B  местами.

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

def perest(arr):
    if arr == arr[::-1]:
        return True
    for i in range(10):
        for j in range(i + 1, 10):
            b = arr.copy()
            b[i], b[j] = b[j], b[i]
            if b == b[::-1]:
                return True
    return False

n = 1000
f = open("Задание_47_ДЗ.txt")
ans = 0
for i in range(n):
    s = f.readline()
    for j in range(len(s) - 9):
        arr = list(s[j:j + 10])
        if perest(arr):
            ans += 1
            break
print(ans)

Ответ: 934
Оцените статью
Я решу все!