Menu
Coddy logo textTech

Grupos de Anagramas

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 54 de 56.

challenge icon

Desafio

Médio

Duas palavras são anagramas se suas letras ordenadas coincidirem: listen e silent ambas resultam em eilnst.

Leia uma única linha de entrada: uma lista de palavras separadas por vírgulas (letras minúsculas, sem espaços em branco dentro das palavras).

Agrupe as palavras por sua assinatura de letras ordenadas. Imprima, nesta ordem:

  1. Uma linha por grupo com duas ou mais palavras, no formato <signature>: <word1>,<word2>,.... Dentro de um grupo, mantenha as palavras na ordem de entrada. Ordene os grupos em ordem alfabética pela assinatura.
  2. Total groups: <n> (contagem de grupos com duas ou mais palavras).

Para a entrada listen,silent,abc,enlist,cab,xyz, a saída é:

abc: abc,cab
eilnst: listen,silent,enlist
Total groups: 2

Experimente você mesmo

let words = readLine()!.components(separatedBy: ",")

// TODO: construir [signature: [word]]; imprimir grupos ordenados com tamanho >= 2;
// então imprimir 'Total groups: <n>'

Todas as lições de Lógica e Fluxo