Roderic Day 4 роки тому
джерело
коміт
03f51d7e32
1 змінених файлів з 17 додано та 0 видалено
  1. +17
    -0
      y2020/p19.py

+ 17
- 0
y2020/p19.py Переглянути файл

@@ -0,0 +1,17 @@
import re
import sys


def recurse(rule):
return re.sub(r'(\d+)', lambda m: f'({recurse(rules[m.group(1)])})', rule)


text = sys.stdin.read()
rules, stuff = text.split('\n\n')
rules = dict([ln.split(': ') for ln in rules.splitlines()])

ans = 0
rex = re.compile(recurse(rules['0']).replace('"', '').replace(' ', '') + '$')
for line in text.splitlines():
ans += bool(rex.match(line))
print(ans)

Завантаження…
Відмінити
Зберегти