Dado um puzzle de alfamética, encontra a solução correta.
A alfamética é um puzzle em que as letras das palavras são substituídas por números.
Por exemplo, SEND + MORE = MONEY:
S E N D
M O R E +
-----------
M O N E Y
Substituindo estas letras por números válidos, obtemos:
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
Isto está correto porque cada letra é substituída por um número diferente e, traduzidas as palavras em números, formam uma soma válida.
Cada letra tem de representar um algarismo diferente, e o algarismo inicial de um número com vários algarismos não pode ser zero.
Podes resolver este exercício com um algoritmo de força bruta, mas isso provavelmente terá um desempenho fraco em tempo de execução. Tenta encontrar uma solução mais sofisticada. Dica: podes experimentar o algoritmo de adição por colunas que habitualmente se ensina no secundário.
Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.