Bir Map ile Gruplama ve Kovalama
Anagramları ve benzer öğeleri gruplayın.
Bir Map ile Gruplama ve Kovalama, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Coding Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Coding Interview Prep kursu toplamda 4 dersten oluşur.
Gruplama Bir Örüntüdür
Birçok problem, ortak bir özelliği paylaşan öğeleri gruplamanızı ister. Anahtardan kovaya yapılan eşleme, bunu tek ve temiz bir geçişe dönüştürür. 🗂️
Gruplama Anahtarını Seçin
Tüm yöntemin özü, aynı gruptaki öğeler için aynı olan bir anahtar seçmektir. Bunu doğru yaparsanız gerisi kolaydır.
Varsayılan Sözlükle Kovalama
Her yeni anahtarın boş bir kovayla başlaması için bir liste varsayılanlı sözlük kullanın. Anahtarın var olup olmadığını hiç denetlemeden öğeleri append edebilirsiniz.
from collections import defaultdict
buckets = defaultdict(list)Temel Döngü
Her öğe için anahtarını hesaplayın ve öğeyi o anahtarın kovasına append edin. Her öğe için bir satır kullanarak her şeyi gruplarsınız.
for word in words:
buckets[key_of(word)].append(word)Anagramları Gruplama
Anagramların sıralanmış harfleri aynıdır; bu nedenle sıralanmış dize mükemmel bir grup anahtarıdır. Bir kez sıralayın, sonra ona göre kovalayın.
k = ''.join(sorted(word))
buckets[k].append(word)Sayımlar için Demet Anahtarları
Sıralama yavaş olduğunda, harf sayılarından oluşan bir demet de anahtar olarak kullanılabilir. Demetler hash'lenebilir olduğundan sözlüğe sorunsuzca yerleştirilir.
k = tuple(Counter(word)[c] for c in 'abcdefghijklmnopqrstuvwxyz')Bir Özelliğe Göre Kovalama
Anahtarı değiştirerek sayıları yalnızca kalanlarına, tek-çift durumlarına veya uzunluklarına göre gruplayabilirsiniz. Örüntü, problemler arasında aynı kalır.
for n in nums:
buckets[n % 3].append(n)Kova Sıralaması Fikri
Değerler küçük bir aralığa sığıyorsa her birini indisli bir kovaya bırakın ve sırayla okuyun. Bu, neredeyse doğrusal bir sıralamadır.
for x in nums:
bucket[x].append(x)Sonuçları Toplama
Kovalama işleminden sonra yanıt genellikle sözlüğün values sonucudur. Değerlendirme sistemi grupların kendisini istiyorsa bunları listeye dönüştürün.
result = list(buckets.values())Grup Başına Sayma
Yalnızca grup boyutlarına ihtiyacınız varsa kovalamayı bir Sayaçta yapın veya sonunda uzunlukları toplayın. Sorunun gerçekten ne istediğine göre seçim yapın.
sizes = {k: len(v) for k, v in buckets.items()}Eşleme Neden Kazanır
Bir eşlemeyle gruplama, her çifti karşılaştırmak yerine O(n) sürer. Hash'lenmiş anahtar, eşleştirme işini sizin için yapar.
Hızlı Kontrol
Anagramların aynı kovaya düşeceği şekilde kelimeleri gruplamak istiyorsunuz.
Özet
Tek bir O(n) geçişte her öğenin anahtarını bir varsayılan sözlük kovasına eşleyerek gruplama yapın. Anahtarı iyi seçerseniz gruplama problemleri kolayca çözülür. 🚀
Sıkça Sorulan Sorular
“Bir Map ile Gruplama ve Kovalama” dersi ücretsiz mi?
Evet — “Bir Map ile Gruplama ve Kovalama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Coding Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Coding Interview Prep kursu toplamda 4 dersten oluşur.
“Bir Map ile Gruplama ve Kovalama” dersinde ne öğreneceğim?
Anagramları ve benzer öğeleri gruplayın. Coding Interview Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Coding Interview Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Coding Interview Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Bir Map ile Gruplama ve Kovalama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Coding Interview Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Coding Interview Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Üyelik ve Tekilleştirme için Kümeler
- Arama Tablosu Olarak Sözlükler
- Counter ve defaultdict Uygulamada
- Bir Map ile Gruplama ve Kovalama