Grupos de Anagramas
Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 54 de 56.
Desafio
MédioDuas 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:
- 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. 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: 2Experimente 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
1Strings a Fundo
Contagem e ÍndicesCase e TrimBusca em StringsDivisão e JunçãoSubstituindo SubstringsRecapitulação - Verificação de Nome de Usuário4Conjuntos
Criando ConjuntosUnião e InterseçãoSubtração e Diferença SimétricaSubconjunto e SuperconjuntoRecapitulação - Filtro de Tags7Projeto - Monitor de Hábitos
Visão Geral do ProjetoMarcar como Concluído10Projeto - Mecanismo de Quiz
Visão Geral do ProjetoFazer Perguntas2Intervalos e Strides
Fechado vs Meio-AbertoStrideMétodos de IntervaloIntervalos no SwitchRecapitulação - Grade de Calendário5Funções de Ordem Superior Parte 1
MapFilterReduceEncadeando map, filter, reduceRecapitulação - Estatísticas de Palavras