puzzle5.py (1142B)
1 polymer = open('files/puzzle5.txt').read()[0:-1] 2 polymer_chain = polymer 3 4 still_reactive = True 5 6 while still_reactive: 7 still_reactive = False 8 9 for j in range(26): 10 new_polymer = polymer_chain.replace(chr(j + 65) + chr(j + 97), '').replace(chr(j + 97) + chr(j + 65), '') 11 if len(new_polymer) != len(polymer_chain): 12 polymer_chain = new_polymer 13 still_reactive = True 14 15 print len(polymer_chain) 16 17 current_shortest_polymer = len(polymer_chain) 18 19 for i in range(26): 20 stripped_polymer = polymer.replace(chr(i + 65), '').replace(chr(i + 97), '') 21 still_reactive = True 22 23 while still_reactive: 24 still_reactive = False 25 26 for j in range(26): 27 new_polymer = stripped_polymer.replace(chr(j + 65) + chr(j + 97), '').replace(chr(j + 97) + chr(j + 65), '') 28 if len(new_polymer) != len(stripped_polymer): 29 stripped_polymer = new_polymer 30 still_reactive = True 31 32 if len(stripped_polymer) < current_shortest_polymer: 33 current_shortest_polymer = len(stripped_polymer) 34 35 print current_shortest_polymer