Menu
CoddyTech

Group Anagrams

MoyenHachageTripython iconjava iconcpp iconc iconjs icon+10

Tu reçois une liste de mots strs. Deux mots sont des anagrammes lorsque l’un réarrange les lettres de l’autre, chacune étant utilisée le même nombre de fois. Regroupe chaque mot avec tous ses anagrammes et renvoie une chaîne par groupe : ses mots par ordre alphabétique, séparés par une seule espace. Trie les groupes par ordre alphabétique selon leur premier mot.

Un mot répété apparaît deux fois dans son groupe, et un mot sans anagramme forme un groupe à lui seul. L’ordre alphabétique correspond à l’ordre du dictionnaire : aab vient avant ab, et ab avant abc.

Fonction

groupAnagrams(strs: string-array) → string-array
strsstring-array
les mots à regrouper, uniquement des lettres minuscules
Renvoiestring-array
une chaîne par groupe : ses mots triés et joints par des espaces, les groupes étant ordonnés selon leur premier mot

Contraintes

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • Chaque mot ne contient que des lettres minuscules de l’alphabet anglais.

Exemples

Entrée
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
Sortie
["apple", "enlist listen silent", "notes onset stone tones"]
Explication
enlist, listen et silent utilisent chacun une fois les lettres e, i, l, n, s et t. notes, onset, stone et tones ont en commun les lettres e, n, o, s et t. apple ne correspond à rien et, en tant que premier mot, arrive en tête.
challenge icon

Pour aller plus loin

Si les mots pouvaient contenir n’importe quels caractères Unicode, quelle clé — les lettres triées ou le nombre de lettres — fonctionnerait toujours, et qu’est-ce que tu changerais ?

Réinitialiser le code
def groupAnagrams(strs):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Argument

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

Résultat attendu

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