Menu
CoddyTech

Group Anagrams

Ti viene fornito un elenco di parole strs. Due parole sono anagrammi quando una riordina le lettere dell’altra, ciascuna usata lo stesso numero di volte. Raggruppa ogni parola con tutti i suoi anagrammi e restituisci una stringa per gruppo: le sue parole in ordine alfabetico, unite da singoli spazi. Ordina i gruppi alfabeticamente in base alla loro prima parola.

Una parola ripetuta è elencata due volte nel suo gruppo e una parola senza anagrammi forma un gruppo di una sola parola. Per ordine alfabetico si intende l’ordine da dizionario: aab viene prima di ab, e ab prima di abc.

Funzione

groupAnagrams(strs: string-array) → string-array
strsstring-array
le parole da raggruppare, solo lettere minuscole
Restituiscestring-array
una stringa per gruppo: le sue parole ordinate e unite da spazi, gruppi ordinati in base alla loro prima parola

Vincoli

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • Ogni parola contiene solo lettere minuscole dell’alfabeto inglese.

Esempi

Input
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
Output
["apple", "enlist listen silent", "notes onset stone tones"]
Spiegazione
enlist, listen e silent usano una volta ciascuna le lettere e, i, l, n, s e t. notes, onset, stone e tones hanno in comune e, n, o, s e t. apple non corrisponde a nulla e, essendo la prima parola, è in testa.
challenge icon

Per approfondire

Se le parole potessero contenere qualsiasi carattere Unicode, quale chiave, lettere ordinate o conteggi delle lettere, funzionerebbe comunque e cosa cambieresti?

Ripristina il codice
def groupAnagrams(strs):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

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

Output atteso

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