Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

29 linhas
740B

  1. import re
  2. import sys
  3. def is_tls(line):
  4. rx = re.compile(r'(\w)(\w)\2\1')
  5. parts = re.split(r'\[(.+?)\]', line)
  6. good = [m for p in parts[::2] for m in rx.findall(p) if m[0] != m[1]]
  7. bad = [m for p in parts[1::2] for m in rx.findall(p) if m[0] != m[1]]
  8. return bool(good and not bad)
  9. def is_ssl(line):
  10. rx = re.compile(r'(?=(\w)(\w)\1)')
  11. parts = re.split(r'\[(.+?)\]', line)
  12. good = {m for p in parts[::2] for m in rx.findall(p) if m[0] != m[1]}
  13. bad = {m[::-1] for p in parts[1::2] for m in rx.findall(p) if m[0] != m[1]}
  14. return bool(good & bad)
  15. ans1 = 0
  16. ans2 = 0
  17. text = sys.stdin.read()
  18. for line in text.strip().splitlines():
  19. ans1 += is_tls(line)
  20. ans2 += is_ssl(line)
  21. print(ans1)
  22. print(ans2)