exercism/ruby/alphametics/alphametics.rb

13 lines
332 B
Ruby
Raw Normal View History

2018-11-07 15:02:44 -05:00
# Alphametics class
class Alphametics
def self.solve(puzzle)
chars = puzzle.chars & ('A'..'Z').to_a
(0..9).to_a.permutation(chars.length).each do |numbers|
equation = puzzle.tr(chars.join, numbers.join)
next if equation =~ /\b0/
return Hash[chars.zip(numbers)] if eval(equation)
end
{}
end
end