Menu
CoddyTech

Group Anagrams

Bir strs sözcük listesi alırsın. İki sözcük, biri diğerinin yeniden düzenlenmiş hâliyse, yani aynı harfleri aynı sayıda içeriyorsa anagramdır. Her sözcüğü tüm anagramlarıyla birlikte bir gruba koy ve her grup için bir dize döndür: gruptaki sözcükler alfabetik sırada, aralarında tek boşluk olacak şekilde birleştirilir. Grupları ilk sözcüklerine göre alfabetik olarak sırala.

İki kez geçen bir sözcük, grubunda iki kez listelenir; anagramı olmayan bir sözcük ise tek üyeli bir grup oluşturur. Alfabetik sıra sözlük sırası demektir: aab, ab'den; ab ise abc'den önce gelir.

Fonksiyon

groupAnagrams(strs: string-array) → string-array
strsstring-array
gruplandırılacak sözcükler, 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 harfler içerir.

Ö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ükleri e, n, o, s ve t harflerini paylaşır; apple ise hiçbir eşleşme bulmaz. İlk sözcüğe göre gruplar apple, enlist, notes sırasındadır.

lock iconGönderirken +15 gizli test

challenge icon

Ek soru

Words öğelerinin 26 küçük harf yerine herhangi bir Unicode karakterini içerebildiğini varsayalım. İki anahtardan hangisi — sıralanmış harfler mi yoksa harf sayıları mı — hâlâ işe yarar ve onda neyi değiştirirdin?

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

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

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