Menu
Coddy logo textTech

Grupos de anagramas

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy. Lección 54 de 56.

challenge icon

Desafío

Intermedio

Dos palabras son anagramas si sus letras ordenadas coinciden: listen y silent se ordenan como eilnst.

Lee una sola línea de entrada: una lista de palabras separadas por comas (en minúsculas, sin espacios en blanco dentro de las palabras).

Agrupa las palabras según su firma de letras ordenadas. Imprime, en este orden:

  1. Una línea por grupo con dos o más palabras, en el formato <signature>: <word1>,<word2>,.... Dentro de un grupo, conserva las palabras en el orden de entrada. Ordena los grupos alfabéticamente por firma.
  2. Total groups: <n> (cantidad de grupos con dos o más palabras).

Para la entrada listen,silent,abc,enlist,cab,xyz, la salida es:

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

Pruébalo tú mismo

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

// TODO: construir [signature: [word]]; imprimir grupos ordenados con tamaño >= 2;
// luego imprimir 'Total groups: <n>'

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Playground de Swift