Tracks
/
Go
Go
/
Ejercicios
/
Alfamética
Alfamética

Alfamética

Difícil

Instrucciones

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.

Implementación

Define una única función de Go, Solve, que acepta un string de rompecabezas que puede tener cero o más operadores +, y un operador ==; Solve debe intentar resolver el rompecabezas de alfamética y devolver un map con todas las sustituciones de letras, tanto para el rompecabezas como para el resultado de la suma.

Usa la siguiente firma para func Solve:

func Solve(puzzle string) (map[string]int, error) {

Solve debe devolver un error si no hay solución para el rompecabezas dado.

Un ejemplo de rompecabezas y de solución devuelta es:

Solve("SEND + MORE == MONEY")

devolvería

map[string]int{"M":1, "O":0, "N":6, "E":5, "Y":2, "S":9, "D":7, "R":8}, nil
  S E N D
  M O R E +
-----------
M O N E Y

Si reemplazas estas letras por números válidos, obtienes:

  9 5 6 7
  1 0 8 5 +
-----------
1 0 6 5 2
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Go Exercism

¿Todo listo para empezar Alfamética?

Regístrate en Exercism para aprender y dominar Go con 34 conceptos165 ejercicios y mentoría humana real, todo gratis.