Trilhas
/
F#
F#
/
Exercícios
/
Alphametics
Alphametics

Alphametics

Difícil

Instruções

Dado um quebra-cabeça de alfamética, encontre a solução correta.

A alfamética é um quebra-cabeça 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 as letras por números válidos, temos:

  9 5 6 7
  1 0 8 5 +
-----------
1 0 6 5 2

Isso está correto porque cada letra é substituída por um número diferente, e as palavras, traduzidas em números, formam uma soma válida.

Cada letra deve representar um dígito diferente, e o primeiro dígito de um número com vários dígitos não pode ser zero.

Dicas

  • Para fazer o parsing do texto, você pode tentar usar a biblioteca FParsec.
  • Você pode resolver este exercício com um algoritmo de força bruta, mas isso provavelmente vai ter um desempenho ruim em tempo de execução. Tente encontrar uma solução mais sofisticada. Dica: você pode tentar o algoritmo de adição por colunas que costuma ser ensinado na escola.
Editar via GitHub O link abre em uma nova janela ou aba
F# Exercism

Tudo pronto para começar Alphametics?

Crie sua conta no Exercism para aprender e dominar F# com 18 conceitos148 exercícios e mentoria humana de verdade, tudo de graça.