AD

¿Ya dominas lo básico? Un curso estructurado de Swift es la vía rápida para dar el salto.

Ver cursos de Swift en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐦Lecciones de Swift
Lección 64 / 68

Comprobar si dos palabras son anagramas

En esta lección comprobarás si dos palabras usan exactamente las mismas letras.

El truco es ordenar las letras de cada una y comparar: dos anagramas ordenados quedan idénticos. lowercased() antes evita que las mayúsculas estorben.

El código de ejemplo compara «amor» y «roma», que sí lo son, y luego dos palabras que no.

Igual que con los palíndromos, aquí las palabras no son la traducción de las inglesas: son un par que cumple la propiedad en español. Un ejemplo traducido literalmente habría dejado de demostrar lo que la lección enseña.

En español hay que contar con los acentos: «canción» y «cinocan» tienen las mismas letras solo si consideras que ó y o son la misma. La respuesta depende de para qué sea, y lo importante es decidirlo a propósito y no por descuido. En Swift eso se ajusta con folding(options: .diacriticInsensitive, ...) antes de ordenar.

Para palabras largas, contar las letras con un diccionario es más eficiente que ordenar, porque recorre cada palabra una sola vez. Con palabras normales la diferencia no se nota, y ordenar se lee mejor.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Swift directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)