Текстовый файл состоит из символов X, I, A, O.
Определите максимальное количество идущих подряд троек символов AXO или XAO в прилагаемом файле.
Искомая подпоследовательность должна состоять только из троек AXO, или только из троек XAO, или только из троек AXO и XAO в произвольном порядке следования этих троек.
Решение
Regexp
🔹 Шаг 1. Подключаем модуль re и читаем весь файл в строку (без лишних пробелов…
import re
📌 Подключаем модуль re и читаем весь файл в строку (без лишних пробелов по краям).
🔹 Шаг 2. Нужны куски, собранные только из троек AXO и XAO
s = open("24.txt").read().strip()
📌 Нужны куски, собранные только из троек AXO и XAO — подряд, без других букв между ними.
🔹 Шаг 3. Регулярное выражение (?:AXO|XAO)+ находит все такие «цепочки» троек в…
pattern = r"(?:AXO|XAO)+"
📌 Регулярное выражение (?:AXO|XAO)+ находит все такие «цепочки» троек в файле.
🔹 Шаг 4. Для каждого совпадения длина в символах делится на 3
counts = (len(m.group()) // 3 for m in re.finditer(pattern, s))
📌 Для каждого совпадения длина в символах делится на 3 — получается число троек; берём максимум среди всех цепочек.
🔹 Шаг 5. Жми RUN
print(max(counts, default=0))
📌 Жми RUN — в выводе будет 5 (самая длинная цепочка троек AXO/XAO).
✅ Ответ: 5
🔹 Полный код
import re
s = open("24.txt").read().strip()
pattern = r"(?:AXO|XAO)+"
counts = (len(m.group()) // 3 for m in re.finditer(pattern, s))
print(max(counts, default=0))