Kurzusok
/
Go
Go
/
Feladatok
/
Alfametika
Alfametika

Alfametika

Nehéz

Utasítások

Egy alphametics rejtvényhez keresd meg a helyes megoldást.

Az Alphametics egy olyan rejtvény, amelyben a szavak betűit számokra cseréljük.

Például a SEND + MORE = MONEY esetében:

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

Ha ezeket érvényes számokra cseréljük, ezt kapjuk:

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

Ez azért helyes, mert minden betűt más szám helyettesít, és a számokká alakított szavak így érvényes összeget adnak.

Minden betű más számjegyet jelöl, és egy többjegyű szám első számjegye nem lehet nulla.

Implementáció

Definiálj egyetlen Go-függvényt, a Solve-ot, amely egy rejtvény stringet kap, amelyben nulla vagy több + operátor és pontosan egy == operátor lehet; a Solve próbálja meg megoldani az alfametikai rejtvényt, és adjon vissza egy map-et, amely a rejtvényhez és az összeadás megoldásához tartozó összes betűhelyettesítést tartalmazza.

A func Solve szignatúrája a következő:

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

A Solve hibát adjon vissza, ha az adott rejtvénynek nincs megoldása.

Egy példa rejtvény és a visszaadott megoldás:

Solve("SEND + MORE == MONEY")

a következőt adná vissza:

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

Ha ezeket érvényes számokra cseréljük, ezt kapjuk:

  9 5 6 7
  1 0 8 5 +
-----------
1 0 6 5 2
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Go Exercism

Készen állsz elkezdeni a(z) Alfametika feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.