adventofcode

https://adventofcode.com/
Log | Files | Refs

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