AD

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

Ver cursos de Ruby en Udemy

Enlace de afiliado. No te cuesta nada extra.

💎Lecciones de Ruby
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 el resultado: dos anagramas ordenados quedan idénticos. chars parte la palabra en caracteres, sort los ordena, y downcase 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 del ejemplo 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 —un juego de palabras diría que sí, un análisis lingüístico que no— y lo importante es decidirlo a propósito y no por descuido.

Para palabras largas, contar las letras con un hash 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 Ruby 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)