Dado um puzzle de alfamética, encontra a solução correta.
A alfamética é um puzzle em que as letras das palavras são substituídas por números.
Por exemplo, SEND + MORE = MONEY:
S E N D
M O R E +
-----------
M O N E Y
Substituindo estas letras por números válidos, obtemos:
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
Isto está correto porque cada letra é substituída por um número diferente e, traduzidas as palavras em números, formam uma soma válida.
Cada letra tem de representar um algarismo diferente, e o algarismo inicial de um número com vários algarismos não pode ser zero.
O teu programa vai receber o enigma alfamético como uma única string através da entrada padrão (stdin). A string do enigma segue o formato WORD1 + WORD2 + ... == RESULT.
Por exemplo:
SEND + MORE == MONEY
Se o enigma tiver uma solução, imprime uma única linha composta por pares LETTER=DIGIT separados por espaços, ordenados alfabeticamente pela letra.
Para o exemplo acima, a saída deve ser:
D=7 E=5 M=1 N=6 O=0 R=8 S=9 Y=2
Se o enigma tiver múltiplas soluções válidas, imprimir qualquer uma delas é aceitável.
Se o enigma não tiver solução, não imprimas nada (uma linha vazia).
Inscreve-te no Exercism para aprenderes e dominares AWK com 3 conceitos92 exercícios, e mentoria humana real, tudo grátis.