0Pricing
Competitive Programming Academy · Ders

Frekans Tablosuyla Harfleri Sayma

Karakterleri bir dict veya dizi kullanarak sayın.

Frekans Tablosuyla Harfleri Sayma, CoddyKit'te ücretsiz bir Competitive Programming Academy dersidir. Bu, 4 dersinin 2. 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, Competitive Programming Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

Karakterleri Neden Saymalı

Çok sayıda dize problemi tek bir soruya indirgenir: her karakter ne sıklıkta görünür? Bir frekans tablosu bu soruyu tek geçişte yanıtlar. 📊

Sözlük Yöntemi

Sade bir sözlük, her karakteri kendi sayısıyla eşler. Unicode ve simgeler dâhil her alfabe için çalışır.

freq = {}
for ch in 'apple':
    freq[ch] = freq.get(ch, 0) + 1
print(freq)

get() KeyError'ı Önler

get(ch, 0) kullanıldığında anahtar eksikse 0 döndürülür; böylece bir harfi ilk gördüğünüzde sayımı düzgün biçimde birden başlatabilirsiniz.

Counter Sizin İçin Yapar

collections içindeki Counter sınıfı tablonun tamamını tek satırda oluşturur. Hızı ve açıklığı nedeniyle yarışma programlamasında sıkça tercih edilir.

from collections import Counter
freq = Counter('apple')
print(freq['p'])  # 2

Eksik Anahtarlar Sıfır Döndürür

Counter eksik bir anahtar için hiçbir zaman hata oluşturmaz. Hiç görmediğiniz bir harfi sormanız yalnızca 0 döndürür; bu da kodunuzu koşulsuz tutar.

from collections import Counter
c = Counter('abc')
print(c['z'])  # 0

Sabit Dizi Yöntemi

Yalnızca küçük harfler için bir 26 yuvalı liste daha da hızlıdır. Her harfi ord aritmetiğiyle dizinleyin ve sayımı artırın.

cnt = [0] * 26
for ch in 'apple':
    cnt[ord(ch) - ord('a')] += 1

Dizi ve Sözlük Karşılaştırması

Dizi en hızlı seçenektir ancak yalnızca önceden bilinen küçük bir alfabeye uygundur. Sözlük veya Counter, küçük bir maliyet karşılığında her karakteri işler.

En Sık Görüleni Bulun

Counter size, frekansa göre sıralanmış en sık k karakteri doğrudan döndüren most_common(k) işlevini sunar. Elle sıralama yapmanız gerekmez.

from collections import Counter
print(Counter('mississippi').most_common(1))

İki Tabloyu Karşılaştırın

İki dize, frekans tabloları eşleştiğinde tam olarak anagramdır. İki Counter'ı karşılaştırmak tek satırda yapılabilir.

from collections import Counter
print(Counter('listen') == Counter('silent'))  # True

Tek Geçiş Yeterlidir

Tabloyu oluşturmak, dizenin tek bir taranması olan O(n) işlemidir. Bundan sonra her arama sabit zamanda yapılır.

Fazlalığı Bulmak İçin Çıkarın

Counter'lar çıkarma işlemini destekler; böylece bir dizenin diğerinde bulunmayan karakterlerini görebilirsiniz. Ransom note türü problemler için oldukça kullanışlıdır.

from collections import Counter
print(Counter('aabb') - Counter('ab'))

Hızlı Kontrol

Karakterleri sayma hakkında bir soru.

Özet

Artık karakterleri bir sözlük, Counter veya 26 yuvalı diziyle sayabilir; bu tabloları anagramları denetlemek ve sık geçen harfleri bulmak için kullanabilirsiniz. 🎉

Sıkça Sorulan Sorular

“Frekans Tablosuyla Harfleri Sayma” dersi ücretsiz mi?

Evet — “Frekans Tablosuyla Harfleri Sayma” 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 Competitive Programming Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

“Frekans Tablosuyla Harfleri Sayma” dersinde ne öğreneceğim?

Karakterleri bir dict veya dizi kullanarak sayın. Competitive Programming Academy 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.

Competitive Programming Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Competitive Programming Academy, 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 2. dersidir.

“Frekans Tablosuyla Harfleri Sayma” 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 Competitive Programming Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Competitive Programming Academy 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. Karakterler, ord ve chr Püf Noktaları
  2. Frekans Tablosuyla Harfleri Sayma
  3. Palindrom Denetimlerini Doğru Yapma
  4. Kelimeleri Bölme, Temizleme ve Yeniden Birleştirme
← Competitive Programming Academy Sayfasına Dön