Найти в Дзене
659 подписчиков

Решаем 24.4917 задание через регулярные выражения


(№ 4917) Текстовый файл 24-191.txt содержит строку из заглавных латинских букв, всего не более чем из 10^6 символов. Определите количество подстрок длиной не менее 20 символов, которые начинаются буквой A, заканчиваются буквой B и не содержат других букв A и B, кроме первой и последней.

Pascal:
##
ReadAllText('24-191.txt')
.MatchValues('[A][C-Z]+[B]')
.Select(s -> s.Length)
.count(t -> t >= 20)
.print;

Python
import re
k=0
s=open('24-191.txt').readline()
r=re.findall(r'[A][C-Z]+[B]',s)
print(len([x for x in r if len(x)>=20]))
Около минуты