0Pricing
Coding Interview Prep · Ders

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

  1. Üyelik ve Tekilleştirme için Kümeler
  2. Arama Tablosu Olarak Sözlükler
  3. Counter ve defaultdict Uygulamada
  4. Bir Map ile Gruplama ve Kovalama
← Coding Interview Prep Sayfasına Dön