2021-12-14 15:59:23 +01:00

36 lines
698 B
Python

#!/usr/bin/env python
import re
RE_INS = re.compile("(.*)\s+->\s+(.*)$")
def iterate_polymer(polymer, rules):
result = polymer[0]
for i in range(0, len(polymer)-1):
k = polymer[i:i+2]
if k in rules.keys():
result = result + rules[k]+k[1]
else:
result = result+k[1]
return result
polymer = None
rules = dict()
with open("input01.txt","r") as f:
polymer = f. readline().strip()
for line in f:
line = line.strip()
if len(line) == 0:
continue
m = RE_INS.match(line)
if not m:
print(line)
rules[m.group(1)] = m.group(2)
for i in range(10):
polymer = iterate_polymer(polymer, rules)
count = [polymer.count(i) for i in set(polymer)]
print(max(count) - min(count))