Saltar al contenido

Los anagramas de una palabra

Enunciado

Dos palabras son anagramas cuando usan exactamente las mismas letras, las mismas veces cada una, aunque en otro orden: "listen" e "inlets".

Escribe una función que reciba una palabra y una lista de candidatas, y regrese una lista con las candidatas que son anagramas de la palabra.

Las reglas: las mayúsculas no cuentan, así que "Carthorse" sí es anagrama de "orchestra". Sobrar o faltar letras no vale: "goody" no es anagrama de "good". Y una palabra no es anagrama de sí misma, así que "banana" no entra en el resultado de "BANANA".

Entrega las candidatas en el mismo orden en que llegaron y escritas tal como llegaron, con sus mayúsculas. Si ninguna sirve, regresa una lista vacía.

Ejemplos

  • Ninguna sirve

    "diaper", ["hello", "world", "zombies", "pants"] → []

  • Dos anagramas

    "master", ["stream", "pigeon", "maters"] → ["stream", "maters"]

  • Ni sobra ni falta

    "good", ["dog", "goody"] → []

  • Uno entre varias

    "listen", ["enlists", "google", "inlets", "banana"] → ["inlets"]

  • Mismas letras, otras veces

    "tapper", ["patter"] → []

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def anagramas_de(palabra, lista):
    pass

JavaScript

function anagramasDe(palabra, lista) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n log n)

Ver todos los retos →