thraxil.org:

Reply to: A Simple Programming Puzzle Seen Through Three Different Lenses

states = ["alabama", ..., "wyoming"] module Enumerable def unique_combinations a = dup result = [] length.times { el1 = a.shift; a.each { |el2| result << [el1, el2] } } result end def normalize_and_cluster dict = {} each { |el| (dict[yield(el)] ||= []) << el } dict end end states.unique_combinations.normalize_and_cluster { |state1, state2| (state1 + state2).split(//).sort }.each { |k, v| puts "#{v[0].join(' + ')} = #{v[1].join(' + ')}" if v.length > 1 } # >> northcarolina + southdakota = northdakota + southcarolina

formatting is with Textile syntax. Comments are not displayed until they are approved by a moderator. Moderators will not approve unless the comment contributes value to the discussion.

namerequired
emailrequired
url
remember info?