Alfamética

Alfamética

Difícil

Instruções

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.

Implementação

Note

Podes (ou não!) querer chamar a função permutations(a, t) de Combinatorics.jl na tua solução.

  • Se estiveres a trabalhar no editor online, podes chamar permutations(a ,t) à vontade, uma vez que já está no espaço de nomes. Podes ver o código-fonte no separador com a etiqueta permutations.jl.
  • Se estiveres a trabalhar localmente, acrescenta include("permutations.jl") ao início do teu ficheiro de solução para acederes à versão de permutations(a, t) que está lá.
Caution

Se usares Combinatorics.jl v1.0.3 localmente, a função permutations(a, t) é muito lenta nos testes grandes. Usa o ficheiro fornecido permutations.jl, atualiza para Combinatorics.jl v≥1.1.0 ou "desce" para v1.0.2.

Editar via GitHub A ligação abre numa nova janela ou separador
Julia Exercism

Estás pronto para começar Alfamética?

Inscreve-te no Exercism para aprenderes e dominares Julia com 35 conceitos128 exercícios, e mentoria humana real, tudo grátis.