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

A tua tarefa é, dada uma palavra alvo e um conjunto de palavras candidatas, encontrar o subconjunto de 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 é anagrama de si própria: por exemplo, "stop" não é um anagrama de "stop".

A palavra alvo e as candidatas são palavras formadas por um ou mais carateres alfabéticos ASCII (A-Z e a-z). Os carateres minúsculos e maiúsculos são equivalentes: por exemplo, "PoTS" é um anagrama de "sTOp", mas StoP não é um anagrama de sTOp. O conjunto de anagramas é o subconjunto do conjunto de candidatos que são anagramas da palavra alvo (por qualquer ordem). As palavras do conjunto de anagramas devem ter as mesmas maiúsculas e minúsculas que no conjunto de candidatos.

Dada a palavra alvo "stone" e as candidatas "stone", "tones", "banana", "tons", "notes", "Seton", o conjunto de anagramas é "tones", "notes", "Seton".

Instruções específicas da track

Tens de devolver os anagramas pela mesma ordem em que estão listados nas palavras candidatas.

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

Estás pronto para começar Anagrama?

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