Percursos
/
F#
F#
/
Exercícios
/
Alfamética
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.

Dicas

  • Para analisar o texto, podes tentar usar a biblioteca FParsec.
  • Podes resolver este exercício com um algoritmo de força bruta, mas isso provavelmente dará um desempenho fraco em tempo de execução. Tenta encontrar uma solução mais sofisticada. Dica: podes tentar o algoritmo de adição coluna a coluna que habitualmente se ensina na escola.
Editar via GitHub A ligação abre numa nova janela ou separador
F# Exercism

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

Inscreve-te no Exercism para aprenderes e dominares F# com 18 conceitos148 exercícios, e mentoria humana real, tudo grátis.