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.
Du kannst diese Übung mit einem Brute-Force-Algorithmus lösen, aber das kann zu einer schlechten Laufzeit führen. Versuche, eine ausgefeiltere Lösung zu finden. Hinweis: Du könntest den spaltenweisen Additionsalgorithmus ausprobieren, der normalerweise an der Highschool gelehrt wird.
Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.