Los anagramas de una palabra
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- textos
- listas
- ordenar
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):
passJavaScript
function anagramasDe(palabra, lista) {
}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)
- Los andenes de la estaciónlistas · ordenar · ciclos
- Los botes de rescatelistas · ordenar · comparaciones
- Los costales antes de la lluvialistas · búsqueda · división
- Los hechizos que volteanordenar · listas · condicionales
- Los números de las camisetaslistas · ordenar · ciclos
- Los primos hasta nlistas · ciclos · operaciones