Gegeben ist ein Alphametik-Rätsel. Finde die richtige Lösung.
Alphametik ist ein Rätsel, bei dem Buchstaben in Wörtern durch Zahlen ersetzt werden.
Zum Beispiel SEND + MORE = MONEY:
S E N D
M O R E +
-----------
M O N E Y
Setzt man gültige Zahlen ein, erhält man:
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
Das ist richtig, weil jeder Buchstabe durch eine andere Zahl ersetzt wird und die Wörter, in Zahlen übersetzt, eine gültige Summe ergeben.
Jeder Buchstabe muss eine andere Ziffer darstellen, und die führende Ziffer einer mehrstelligen Zahl darf nicht null sein.
Dein Skript erhält das alphametische Rätsel als einzelnen String über die
Standardeingabe (stdin). Der Rätsel-String hat das Format
WORD1 + WORD2 + ... == RESULT.
Zum Beispiel:
SEND + MORE == MONEY
Wenn das Rätsel eine Lösung hat, gib eine einzelne Zeile aus, die aus
durch Leerzeichen getrennten LETTER=DIGIT-Paaren besteht, alphabetisch nach
Buchstabe sortiert.
Für das Beispiel oben sollte die Ausgabe so aussehen:
D=7 E=5 M=1 N=6 O=0 R=8 S=9 Y=2
Wenn das Rätsel mehrere gültige Lösungen hat, ist es in Ordnung, eine beliebige davon auszugeben.
Wenn das Rätsel keine Lösung hat, gib nichts aus (eine leere Zeile).
Melde dich bei Exercism an, um AWK mit 3 Konzepte92 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.