0Pricing
Coding Interview Prep · Ders

Polinomsal Dize Hash'leme

Alt dizeleri sabit zamanda karşılaştırın.

Polinomsal Dize Hash'leme, CoddyKit'te ücretsiz bir Coding Interview Prep 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, 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.

Alt Dizeleri Hızlıca Karşılaştırma

Çoğu zaman iki alt dizenin eşit olup olmadığını sormanız gerekir. Karakter karakter karşılaştırmalar yavaştır; bu nedenle her dizeyi bir sayıya dönüştürürüz. 🔢

Karma Fikri

Bir karma, bir dizeyi tek bir tam sayıya dönüştürür. İki dize farklıysa karmaları da neredeyse her zaman farklı olur.

Dizeleri Polinom Olarak Ele Alın

Her karakteri p tabanındaki bir rakam olarak okuruz. Bu polinom bakışı, dizeyi büyük bir ağırlıklı toplama dönüştürür.

h = ord(s[0]) + ord(s[1]) * p + ord(s[2]) * p * p

Bir Taban ve Modül Seçin

31 gibi bir asal taban ve büyük bir asal modül seçin. Mod işlemi sayıları küçük tutar ve taşmayı önler.

BASE = 31
MOD = 10**9 + 9

Tek Bir Karma Hesaplama

Dizeyi dolaşın ve her karakteri Horner kuralıyla birleştirin; her adımda mod işlemi uygulayın.

h = 0
for c in s:
    h = (h * BASE + ord(c)) % MOD

Önek Karmaları

Her konum için bir önek karması saklayın. Ardından herhangi bir alt dize karmasını hızlı bir çıkarmayla elde edebilirsiniz.

pre[i + 1] = (pre[i] * BASE + ord(s[i])) % MOD

Tabanın Kuvvetleri

Ayrıca tabanın kuvvetlerini önceden hesaplayın. Çıkarma yaptığınızda iki öneki aynı ölçeğe getirirler.

pw[i] = (pw[i - 1] * BASE) % MOD

O(1) Sürede Alt Dize Karması

s[l..r] alt dizesinin karması, bir kuvvetle ölçeklendirilmiş iki önek karmasının çıkarılmasıdır. Sorgu başına sabit zaman.

def sub(l, r):
    return (pre[r] - pre[l] * pw[r - l]) % MOD

Çakışmalara dikkat edin

İki farklı dize aynı karma değerini paylaşabilir; buna çakışma denir. Bu durum nadirdir, ancak yarışmalarda bazen girdiler özellikle bunu tetikleyecek şekilde hazırlanır.

Güvenlik için çift karma

İki bağımsız modül kullanıp her iki karma değerini de karşılaştırın. İkisinde birden aynı anda çakışma olması pratikte imkânsızdır.

Karma işleminin öne çıktığı yerler

Karma işlemi alt dize karşılaştırmasını, tekrarları bulmayı ve desen aramayı mümkün kılar. Çok amaçlı, esnek bir araçtır.

Hızlı kontrol

Çok sayıda alt dizeyi güvenli biçimde karşılaştırmak için doğru aracı seçin.

Özet: Karma işleminin gücü

Artık dizeleri polinom karma değerlerine dönüştürebilir, herhangi bir alt dizeyi O(1) sürede sorgulayabilir ve çakışmalara karşı önlem alabilirsiniz. 🚀

Sıkça Sorulan Sorular

“Polinomsal Dize Hash'leme” dersi ücretsiz mi?

Evet — “Polinomsal Dize Hash'leme” 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.

“Polinomsal Dize Hash'leme” dersinde ne öğreneceğim?

Alt dizeleri sabit zamanda karşılaştırı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 2. dersidir.

“Polinomsal Dize Hash'leme” 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. KMP Önek İşlevi
  2. Polinomsal Dize Hash'leme
  3. Desen Araması için Z-İşlevi
  4. Önek Aramaları için Trie'ler
← Coding Interview Prep Sayfasına Dön