Menu
CoddyTech

Group Anagrams

Bir kelime listesi olan strs veriliyor. Bir kelime, diğerinin harfleri aynı sayıda kullanılarak yeniden düzenlendiğinde bu iki kelime anagramdır. Her kelimeyi tüm anagramlarıyla gruplayıp her grup için bir dize döndür: gruptaki kelimeleri alfabetik sırayla, tek boşluklarla birleştir. Grupları ilk kelimelerine göre alfabetik sırala.

Tekrarlanan bir kelime, grubunda iki kez listelenir; anagramı olmayan bir kelime ise tek elemanlı bir grup oluşturur. Alfabetik sıra, sözlük sırası anlamına gelir: aab, ab'den; ab ise abc'den önce gelir.

Fonksiyon

groupAnagrams(strs: string-array) → string-array
strsstring-array
gruplandırılacak kelimeler, yalnızca küçük harfler
Döndürürstring-array
her grup için bir dize: sözcükleri sıralanıp boşluklarla birleştirilmiş, gruplar ilk sözcüklerine göre sıralanmış

Kısıtlar

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • Her sözcük yalnızca küçük İngilizce harflerden oluşur.

Örnekler

Girdi
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
Çıktı
["apple", "enlist listen silent", "notes onset stone tones"]
Açıklama
enlist, listen ve silent sözcüklerinin her biri e, i, l, n, s ve t harflerini birer kez kullanır. notes, onset, stone ve tones sözcüklerinin ortak harfleri e, n, o, s ve t'dir. apple hiçbir şeyle eşleşmez ve ilk sözcük olarak öne çıkar.
challenge icon

Ek soru

Kelimeler herhangi bir Unicode karakteri içerebilseydi, hangi anahtar (sıralanmış harfler veya harf sayıları) yine işe yarardı ve onda neyi değiştirirdin?

Kodu sıfırla
def groupAnagrams(strs):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

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