import sys sys.path.append("../common") import aoc data = aoc.data def react(s): i = 0 while i < len(s)-1: cs = "".join(s[i:i+2]) csl = cs.lower() if csl[0] == csl[1] and cs[0] != cs[1]: s.pop(i) s.pop(i) if i > 0: i -= 1 else: i += 1 return len(s) def solve1(args): return react(list(data)) def solve2(args): react_wo = lambda x : react(list(data.replace(x, "").replace(x.upper(), ""))) alph = "abcdefghijklmnopqrstuvwxyz" return min((react_wo(c) for c in alph)) aoc.run(solve1, solve2, sols=[11364, 4212])