ruby - alphametics

This commit is contained in:
2018-11-07 15:02:44 -05:00
parent ddf33000c8
commit a69fbfe259
3 changed files with 156 additions and 0 deletions

View File

@ -0,0 +1,12 @@
# 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