Track
/
Go
Go
/
Esercizi
/
Alfametica
Alfametica

Alfametica

Difficile

Istruzioni

Dato un puzzle di alphametics, trova la soluzione corretta.

L'Alphametics è un puzzle in cui le lettere delle parole vengono sostituite con dei numeri.

Per esempio, SEND + MORE = MONEY:

  S E N D
  M O R E +
-----------
M O N E Y

Sostituendo queste lettere con dei numeri validi si ottiene:

  9 5 6 7
  1 0 8 5 +
-----------
1 0 6 5 2

Il risultato è corretto perché ogni lettera è sostituita da un numero diverso e le parole, tradotte in numeri, formano una somma valida.

Ogni lettera deve rappresentare una cifra diversa, e la cifra iniziale di un numero con più cifre non può essere zero.

Implementazione

Definisci un'unica funzione Go, Solve, che accetta una stringa puzzle che può contenere zero o più operatori + e un solo operatore ==; Solve deve provare a risolvere il puzzle alfametico e restituire una mappa di tutte le sostituzioni di lettere, sia per il puzzle sia per la soluzione dell'addizione.

Usa la seguente firma per la funzione Solve:

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

Solve deve restituire un errore se il puzzle dato non ha soluzione.

Un esempio di puzzle e la soluzione restituita è:

Solve("SEND + MORE == MONEY")

restituirebbe

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

Sostituendo queste lettere con numeri validi si ottiene:

  9 5 6 7
  1 0 8 5 +
-----------
1 0 6 5 2
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Go Exercism

Vuoi iniziare Alfametica?

Iscriviti a Exercism per imparare e padroneggiare Go con 34 concetti165 esercizi e il mentoring di persone reali, tutto gratis.