Ejemplo n.º 1
0
 def test_two_opposite_units_annihilate(self):
     self.assertEqual("", react("aA"))
Ejemplo n.º 2
0
 def test_two_same_units_remain(self):
     self.assertEqual("aa", react("aa"))
Ejemplo n.º 3
0
 def test_wrap_around_reaction_not_allowed(self):
     self.assertEqual("Bxxxb", react("AaBxxxb"))
Ejemplo n.º 4
0
 def test_a_more_complex_example(self):
     self.assertEqual("dabCBAcaDA", react("dabAcCaCBAcCcaDA"))
Ejemplo n.º 5
0
 def test_two_chain_reactions(self):
     self.assertEqual("", react("bAaB"))
Ejemplo n.º 6
0
 def test_two_different_units_remain(self):
     self.assertEqual("ab", react("ab"))
     self.assertEqual("Ab", react("Ab"))
Ejemplo n.º 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))