Einführung
Betrachten Sie das folgende Beispiel:
CODE
+ GOLF
——————
GREAT
Hierbei handelt es sich um eine Gleichung, bei der jeder Buchstabe eine Dezimalziffer und die Wörter natürliche Zahlen darstellen (ähnliche Buchstaben stehen für ähnliche Ziffern und unterschiedliche Buchstaben für unterschiedliche Ziffern). Die Aufgabe besteht darin, jeden Buchstaben mit seinem Ziffernwert abzugleichen, damit die Gleichung korrekt ist. Eine Lösung für die obige Gleichung ist:
9265
+ 1278
——————
10543
Deine Aufgabe
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, mit der die oben genannten Gleichungen gelöst werden können.
Eingang
Die Eingabe ist eine Zeichenfolge im folgenden Format:
[A-Z]+\+[A-Z]+=[A-Z]+
Beispiel:
CODE+GOLF=GREAT
AA+BB=CC
Leerzeichen werden weggelassen und es werden nur Buchstaben zwischen Großbuchstaben A und Z verwendet (keine Sonder- oder Kleinbuchstaben).
Diese Zeichenfolge kann aus der Standardeingabe, aus einer Datei oder als Funktionsparameter gelesen werden.
Ausgabe
Sie haben folgende zwei Möglichkeiten für das Ausgabeformat:
- die ursprüngliche Gleichung mit den Ziffern ersetzt
- Liste der Buchstaben und ihrer Werte
Wenn es mehrere Lösungen gibt, sollte eine (aber nur eine) davon zurückgegeben werden. Wenn es keine Lösungen gibt, sollte das Programm eine leere Zeichenfolge oder null zurückgeben. Die Ausgabe kann als String zurückgegeben, in die Standardausgabe oder in eine Datei geschrieben werden.
Beispiel:
9265+1278=10543
A=1 B=2 C=3
(Sie können ein beliebiges Trennzeichen verwenden)
Regeln
- Um die Sache zu vereinfachen, wird angenommen, dass Zahlen mit 0 beginnen, aber Sie können Zahlen mit führender 0 als ungültige Lösungen behandeln, es liegt an Ihnen
- Ähnliche Buchstaben stehen für ähnliche Ziffern, und verschiedene Buchstaben stehen für unterschiedliche Ziffern
- Sie können jede Sprache und die Standardbibliothek der gewählten Sprache verwenden (keine externen Bibliotheken)
- Sie können keine Verbindung zu Ressourcen im Internet herstellen (warum sollten Sie es trotzdem tun?)
- Dies ist eine Code-Golf-Aufgabe, der kürzeste Code gewinnt. Aufeinanderfolgende Leerzeichen zählen als ein einzelnes Zeichen. (So gewinnt jedes in Leerzeichen geschriebene Programm automatisch)
Ich habe eine etwas hackige Lösung mit 179 Zeichen. Wenn etwas nicht klar ist, frag mich bitte in den Kommentaren.
If there are no solutions, the program should return an empty string or null.
Endlosschleifen geben immer noch nichts aus ... darf ich?