Menu
CoddyTech

Group Anagrams

Você recebe uma lista de palavras strs. Duas palavras são anagramas quando uma reorganiza as letras da outra, cada uma usada o mesmo número de vezes. Agrupe cada palavra com todos os seus anagramas e retorne uma string por grupo: suas palavras em ordem alfabética, separadas por espaços simples. Ordene os grupos alfabeticamente pela primeira palavra de cada um.

Uma palavra repetida aparece duas vezes em seu grupo, e uma palavra sem anagramas forma um grupo de uma palavra. Ordem alfabética significa ordem de dicionário: aab vem antes de ab, e ab antes de abc.

Função

groupAnagrams(strs: string-array) → string-array
strsstring-array
as palavras a agrupar, somente letras minúsculas
Retornastring-array
uma string por grupo: suas palavras ordenadas e unidas por espaços, grupos ordenados pela primeira palavra

Restrições

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • Cada palavra contém apenas letras minúsculas do inglês.

Exemplos

Entrada
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
Saída
["apple", "enlist listen silent", "notes onset stone tones"]
Explicação
enlist, listen e silent usam e, i, l, n, s e t uma vez cada. notes, onset, stone e tones compartilham e, n, o, s e t. apple não corresponde a nada e, por ser a primeira palavra, fica à frente.
challenge icon

Para ir além

Se as palavras pudessem conter quaisquer caracteres Unicode, qual chave — letras ordenadas ou contagens de letras — ainda funcionaria, e o que você mudaria nela?

Redefinir código
def groupAnagrams(strs):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

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

Saída Esperada

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