選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

p19.py 403B

4年前
1234567891011121314151617
  1. import re
  2. import sys
  3. def recurse(rule):
  4. return re.sub(r'(\d+)', lambda m: f'({recurse(rules[m.group(1)])})', rule)
  5. text = sys.stdin.read()
  6. rules, stuff = text.split('\n\n')
  7. rules = dict([ln.split(': ') for ln in rules.splitlines()])
  8. ans = 0
  9. rex = re.compile(recurse(rules['0']).replace('"', '').replace(' ', '') + '$')
  10. for line in text.splitlines():
  11. ans += bool(rex.match(line))
  12. print(ans)