introduction
Prenons l'exemple suivant:
CODE
+ GOLF
——————
GREAT
Il s'agit d'une équation où chaque lettre représente un chiffre décimal et les mots représentent des nombres naturels (des lettres similaires représentent des chiffres similaires et des lettres différentes représentent des chiffres différents). La tâche consiste à faire correspondre chaque lettre avec sa valeur numérique afin que l'équation soit correcte. Une solution pour l'équation ci-dessus est:
9265
+ 1278
——————
10543
Ta tâche
Votre tâche consiste à écrire un programme ou une fonction qui peut résoudre de telles équations comme vu ci-dessus.
Contribution
L'entrée est une chaîne au format suivant:
[A-Z]+\+[A-Z]+=[A-Z]+
Exemple:
CODE+GOLF=GREAT
AA+BB=CC
Les espaces sont omis et seules les lettres entre les majuscules A et Z seront utilisées (pas de lettres spéciales ou minuscules).
Cette chaîne peut être lue depuis l'entrée standard, depuis un fichier ou comme paramètre de fonction.
Production
Vous disposez des deux options suivantes pour le format de sortie:
- l'équation originale avec les chiffres substitués
- liste des lettres et de leurs valeurs
S'il existe plusieurs solutions, toutes (mais une seule) doivent être retournées. S'il n'y a pas de solutions, le programme doit retourner une chaîne vide ou null. La sortie peut être renvoyée sous forme de chaîne, peut être écrite dans la sortie standard ou dans un fichier.
Exemple:
9265+1278=10543
A=1 B=2 C=3
(vous pouvez utiliser n'importe quel délimiteur)
Règles
- Pour faciliter les choses, les nombres sont acceptés pour commencer par 0, mais vous pouvez gérer les nombres avec 0 en tête comme des solutions invalides, c'est à vous de décider
- Des lettres similaires représentent des chiffres similaires et des lettres différentes représentent des chiffres différents
- Vous pouvez utiliser n'importe quelle langue et la bibliothèque standard de la langue choisie (pas de bibliothèques externes)
- Vous ne pouvez pas vous connecter à des ressources sur Internet (pourquoi le feriez-vous quand même?)
- Il s'agit d'une tâche de golf de code, le code le plus court gagne. Les espaces blancs consécutifs comptent comme un seul caractère. (Donc, tout programme écrit en espace gagne automatiquement)
J'ai une solution quelque peu piratée utilisant 179 caractères. Si quelque chose n'est pas clair, veuillez me demander dans les commentaires.
If there are no solutions, the program should return an empty string or null.
Les boucles infinies ne produisent toujours rien ... puis-je?