05_alchemy.py 571 B

123456789101112131415161718192021
  1. #!/usr/bin/env python3
  2. import sys
  3. def react(polymer):
  4. i = 0
  5. while i < len(polymer) - 1:
  6. if abs(polymer[i] - polymer[i + 1]) == 32:
  7. del polymer[i:i + 2]
  8. if i > 0:
  9. i -= 1
  10. else:
  11. i += 1
  12. return len(polymer)
  13. def remove(polymer, ty):
  14. p = [c for c in polymer if c not in (ty, ty + 32)]
  15. return react(p) if len(p) < len(polymer) else len(p)
  16. polymer = list(map(ord, sys.stdin.read().rstrip()))
  17. print(react(polymer.copy()))
  18. print(min(remove(polymer, ty) for ty in range(ord('A'), ord('Z'))))