Menu
CoddyTech

Group Anagrams

Recibes una lista de palabras strs. Dos palabras son anagramas cuando una reordena las letras de la otra, usando cada letra el mismo número de veces. Agrupa cada palabra con todos sus anagramas y devuelve una cadena por grupo: sus palabras en orden alfabético, unidas por espacios individuales. Ordena los grupos alfabéticamente según su primera palabra.

Una palabra repetida aparece dos veces en su grupo, y una palabra sin anagramas forma un grupo de una sola palabra. El orden alfabético es el orden del diccionario: aab va antes que ab, y ab antes que abc.

Función

groupAnagrams(strs: string-array) → string-array
strsstring-array
las palabras para agrupar, solo letras minúsculas
Devuelvestring-array
una cadena por grupo: sus palabras ordenadas y unidas con espacios, grupos ordenados por su primera palabra

Restricciones

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • Cada palabra contiene únicamente letras minúsculas del inglés.

Ejemplos

Entrada
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
Salida
["apple", "enlist listen silent", "notes onset stone tones"]
Explicación
enlist, listen y silent usan e, i, l, n, s y t una vez cada una. notes, onset, stone y tones comparten e, n, o, s y t. apple no coincide con nada y, como primera palabra, va primero.
challenge icon

Para ir más allá

Si las palabras pudieran contener cualquier carácter Unicode, ¿qué clave, las letras ordenadas o el recuento de letras, seguiría funcionando y qué cambiarías en ella?

Restablecer código
def groupAnagrams(strs):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]

Salida Esperada

["apple", "enlist listen silent", "notes onset stone tones"]