Dado un acertijo de alfamética, encuentra la solución correcta.
La alfamética es un acertijo en el que las letras de las palabras se reemplazan por números.
Por ejemplo, SEND + MORE = MONEY:
S E N D
M O R E +
-----------
M O N E Y
Si reemplazas esas letras por números válidos, obtienes:
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
Esto es correcto porque cada letra se reemplaza por un número distinto y las palabras, convertidas en números, forman una suma válida.
Cada letra debe representar un dígito distinto, y el primer dígito de un número de varios dígitos no puede ser cero.
Puedes resolver este ejercicio con un algoritmo de fuerza bruta, pero quizá su rendimiento en tiempo de ejecución no sea bueno. Intenta encontrar una solución más sofisticada. Pista: podrías probar el algoritmo de suma por columnas que normalmente se enseña en la secundaria.
Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.