require "./common.cr" lines = File.read("day5_input").split("\n") def react(string) lower = string.downcase.chars string = string.chars changed = true while changed changed = false i = 0 while i < string.size - 1 next_i = i + 1 if string[i] != string[next_i] && lower[i] == lower[next_i] string.delete_at i string.delete_at i lower.delete_at i lower.delete_at i i -= 1 i = 0 if i < 0 changed = true else i += 1 end end end return string end puts react(lines[0]).size pairs = {} of Tuple(Char, Char) => Int32 ('a'..'z').to_a.zip(('A'..'Z').to_a).each do |pair| new_string = lines[0].delete(pair[0]).delete(pair[1]) pairs[pair] = react(new_string).size end puts pairs.values.min