Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

19 lines
488B

  1. import re
  2. def solve(text, digits):
  3. tot = 0
  4. rgx = '(' + '|'.join(digits) + ')'
  5. rgx = f'(?={rgx})' # allow overlapping matches
  6. for ln in text.splitlines():
  7. ns = [digits.get(s, s) for s in re.findall(rgx, ln)]
  8. tot += 10 * ns[0] + ns[-1]
  9. print(tot)
  10. text = open(0).read()
  11. xs = {v: k for k, v in enumerate('0123456789')}
  12. ys = {v: k for k, v in enumerate('zero one two three four five six seven eight nine'.split())}
  13. solve(text, xs)
  14. solve(text, xs | ys)