#!/usr/bin/env ruby input = gets.chomp.chars units = input.map(&:downcase).uniq lengths = {} units.each do |unit| polymer = input.dup polymer.delete_if {|u| u == unit || u == unit.upcase} l = polymer.length loop do i = polymer.length - 1 loop do break if i < 1 if polymer[i] == polymer[i-1].swapcase polymer.delete_at(i) polymer.delete_at(i-1) i -= 2 else i -= 1 end end if polymer.length == l break else l = polymer.length end end lengths[unit] = polymer.length end puts lengths.values.min