05_nicestrings.py 817 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python3
  2. import sys
  3. def nice1(s):
  4. if sum(1 for c in s if c in 'aeiou') < 3:
  5. return False
  6. double = False
  7. for i in range(len(s) - 1):
  8. a, b = duo = s[i:i + 2]
  9. double |= a == b
  10. if duo in ('ab', 'cd', 'pq', 'xy'):
  11. return False
  12. return double
  13. def nice2(s):
  14. prev = {}
  15. for i in range(len(s) - 1):
  16. pair = s[i:i + 2]
  17. if pair not in prev:
  18. prev[pair] = i
  19. elif prev[pair] < i - 1:
  20. break
  21. else:
  22. return False
  23. prev = {}
  24. for i, c in enumerate(s):
  25. if prev.get(c, None) == i - 2:
  26. return True
  27. prev[c] = i
  28. return False
  29. strings = [line.rstrip() for line in sys.stdin]
  30. print(sum(int(nice1(s)) for s in strings))
  31. print(sum(int(nice2(s)) for s in strings))