Introdução
Considere o seguinte exemplo:
CODE
+ GOLF
——————
GREAT
Esta é uma equação em que cada letra representa um dígito decimal e as palavras representam números naturais (letras semelhantes representam dígitos semelhantes e letras diferentes representam dígitos diferentes). A tarefa é combinar cada letra com seu valor de dígito para que a equação esteja correta. Uma solução para a equação acima é:
9265
+ 1278
——————
10543
Sua tarefa
Sua tarefa é escrever um programa ou uma função que possa resolver essas equações, como visto acima.
Entrada
A entrada é uma sequência no seguinte formato:
[A-Z]+\+[A-Z]+=[A-Z]+
Exemplo:
CODE+GOLF=GREAT
AA+BB=CC
Os espaços são omitidos e somente as letras entre maiúsculas A e Z serão usadas (sem letras maiúsculas ou minúsculas).
Essa sequência pode ser lida a partir da entrada padrão, de um arquivo ou como um parâmetro de função.
Resultado
Você tem as duas opções a seguir para o formato de saída:
- a equação original com os dígitos substituídos
- lista das letras e seus valores
Se houver várias soluções, qualquer (mas apenas uma) delas deve ser retornada. Se não houver soluções, o programa deve retornar uma cadeia vazia ou nula. A saída pode ser retornada como uma sequência, pode ser gravada na saída padrão ou em um arquivo.
Exemplo:
9265+1278=10543
A=1 B=2 C=3
(você pode usar qualquer delimitador)
Regras
- Para facilitar as coisas, os números são aceitos para começar com 0, mas você pode lidar com números com os 0 iniciais como soluções inválidas.
- Letras semelhantes representam dígitos semelhantes e letras diferentes representam dígitos diferentes
- Você pode usar qualquer idioma e a biblioteca padrão do idioma escolhido (sem bibliotecas externas)
- Você não pode se conectar a nenhum recurso na internet (por que você faria assim?)
- Esta é uma tarefa de código de golfe, o código mais curto vence. Caracteres consecutivos de espaço em branco contam como um único caractere. (Portanto, qualquer programa escrito em espaço em branco vence automaticamente)
Eu tenho uma solução um pouco hackish usando 179 caracteres. Se algo não estiver claro, pergunte-me nos comentários.
If there are no solutions, the program should return an empty string or null.
Loops infinitos ainda não produzem nada ... posso?