Menu
CoddyTech

Group Anagrams

Du erhältst eine Liste von Wörtern strs. Zwei Wörter sind Anagramme, wenn man die Buchstaben des einen so umordnet, dass sie den Buchstaben des anderen entsprechen, wobei jeder Buchstabe gleich oft verwendet wird. Gruppiere jedes Wort mit all seinen Anagrammen und gib für jede Gruppe einen String zurück: ihre Wörter in alphabetischer Reihenfolge, durch einzelne Leerzeichen getrennt. Sortiere die Gruppen alphabetisch nach ihrem ersten Wort.

Ein wiederholtes Wort wird in seiner Gruppe zweimal aufgeführt, und ein Wort ohne Anagramm bildet eine Gruppe für sich. Alphabetisch bedeutet Wörterbuchreihenfolge: aab kommt vor ab und ab vor abc.

Funktion

groupAnagrams(strs: string-array) → string-array
strsstring-array
die Wörter gruppieren, nur Kleinbuchstaben
Gibt zurückstring-array
eine Zeichenkette pro Gruppe: ihre Wörter sortiert und durch Leerzeichen verbunden, Gruppen nach ihrem ersten Wort geordnet

Einschränkungen

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • Jedes Wort enthält ausschließlich englische Kleinbuchstaben.

Beispiele

Eingabe
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
Ausgabe
["apple", "enlist listen silent", "notes onset stone tones"]
Erklärung
enlist, listen und silent verwenden jeweils einmal e, i, l, n, s und t. notes, onset, stone und tones haben e, n, o, s und t gemeinsam. apple passt zu keinem und steht beim ersten Wort vorne.
challenge icon

Weiterführende Frage

Wenn die Wörter beliebige Unicode-Zeichen enthalten könnten: Welcher Schlüssel – sortierte Buchstaben oder Buchstabenhäufigkeiten – funktioniert weiterhin, und was würdest du daran ändern?

Code zurücksetzen
def groupAnagrams(strs):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

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

Erwartete Ausgabe

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