Exemple #1
0
 def test_two_opposite_units_annihilate(self):
     self.assertEqual("", react("aA"))
Exemple #2
0
 def test_two_same_units_remain(self):
     self.assertEqual("aa", react("aa"))
Exemple #3
0
 def test_wrap_around_reaction_not_allowed(self):
     self.assertEqual("Bxxxb", react("AaBxxxb"))
Exemple #4
0
 def test_a_more_complex_example(self):
     self.assertEqual("dabCBAcaDA", react("dabAcCaCBAcCcaDA"))
Exemple #5
0
 def test_two_chain_reactions(self):
     self.assertEqual("", react("bAaB"))
Exemple #6
0
 def test_two_different_units_remain(self):
     self.assertEqual("ab", react("ab"))
     self.assertEqual("Ab", react("Ab"))
Exemple #7
0
from string import ascii_lowercase

from part1 import react

if __name__ == '__main__':
    with open('input.txt') as f:
        polymer = f.read().strip()
    results = (len(
        react(polymer.replace(letter, '').replace(letter.upper(), '')))
               for letter in ascii_lowercase)
    print(min(results))