Introducción
Considere el siguiente ejemplo:
CODE
+ GOLF
——————
GREAT
Esta es una ecuación en la que cada letra representa un dígito decimal y las palabras representan números naturales (letras similares representan dígitos similares y letras diferentes representan dígitos diferentes). La tarea es hacer coincidir cada letra con su valor de dígito para que la ecuación sea correcta. Una solución para la ecuación anterior es:
9265
+ 1278
——————
10543
Tu tarea
Su tarea es escribir un programa o una función que pueda resolver tales ecuaciones como se ve arriba.
Entrada
La entrada es una cadena en el siguiente formato:
[A-Z]+\+[A-Z]+=[A-Z]+
Ejemplo:
CODE+GOLF=GREAT
AA+BB=CC
Se omiten los espacios y solo se utilizarán letras entre mayúscula A y Z (sin letras especiales o minúsculas).
Esta cadena se puede leer desde la entrada estándar, desde un archivo o como un parámetro de función.
Salida
Tiene las siguientes dos opciones para el formato de salida:
- la ecuación original con los dígitos sustituidos
- lista de las letras y sus valores
Si hay varias soluciones, se debe devolver cualquiera (pero solo una) de ellas. Si no hay soluciones, el programa debería devolver una cadena vacía o nula. La salida se puede devolver como una cadena, se puede escribir en la salida estándar o en un archivo.
Ejemplo:
9265+1278=10543
A=1 B=2 C=3
(puedes usar cualquier delimitador)
Reglas
- Para facilitar las cosas, los números se aceptan para comenzar con 0, pero puede manejar números con 0 a la izquierda como soluciones no válidas, depende de usted
- Letras similares representan dígitos similares y letras diferentes representan dígitos diferentes
- Puede usar cualquier idioma y la biblioteca estándar del idioma elegido (sin bibliotecas externas)
- No puede conectarse a ningún recurso en Internet (¿por qué lo haría de todos modos?)
- Esta es una tarea de golf de código, el código más corto gana. Los caracteres de espacio en blanco consecutivos cuentan como un solo carácter. (Entonces, cualquier programa escrito en espacios en blanco gana automáticamente)
Tengo una solución algo hacking usando 179 caracteres. Si algo no está claro, por favor pregúntame en los comentarios.
If there are no solutions, the program should return an empty string or null.
Los bucles infinitos aún no generan nada ... ¿puedo?