Anagrama

Anagrama

Médio

Introdução

Numa venda de garagem, encontras uma bela máquina de escrever vintage a um preço de saldo! Com entusiasmo, corres para casa, colocas uma folha de papel e começas a escrever à máquina. No entanto, o teu entusiasmo esmorece quando examinas o resultado: todas as palavras saem baralhadas! Por exemplo, imprime "stop" em vez de "post" e "least" em vez de "stale". Com cuidado, tentas outra vez, mas agora imprime "spot" e "slate". Depois de algumas experiências, descobres que há um atraso aleatório antes de cada letra ser impressa. Isso baralha a ordem. Agora percebes porque é que a venderam por tão pouco dinheiro!

Percebes que esta peculiaridade te permite gerar anagramas, que são palavras formadas ao reorganizar as letras de outra palavra. Contente com a tua descoberta, passas o resto do dia a gerar centenas de anagramas.

Instruções

Dada uma palavra-alvo e uma ou mais palavras candidatas, a tua tarefa é encontrar as candidatas que são anagramas da palavra-alvo.

Um anagrama é um rearranjo de letras que forma uma nova palavra: por exemplo, "owns" é um anagrama de "snow". Uma palavra não é um anagrama de si própria: por exemplo, "stop" não é um anagrama de "stop".

A palavra-alvo e as palavras candidatas são compostas por um ou mais carateres alfabéticos ASCII (A-Z e a-z). Os carateres em minúscula e em maiúscula são equivalentes: por exemplo, "PoTS" é um anagrama de "sTOp", mas "StoP" não é um anagrama de "sTOp". As palavras que precisas de encontrar devem ser retiradas das palavras candidatas, com as mesmas maiúsculas e minúsculas.

Dada a palavra-alvo "stone" e as palavras candidatas "stone", "tones", "banana", "tons", "notes" e "Seton", os anagramas que precisas de encontrar são "tones", "notes" e "Seton".

Implementação

Tens de devolver os anagramas na mesma ordem em que aparecem na lista de palavras candidatas.

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

Estás pronto para começar Anagrama?

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