0Pricing
Coding Interview Prep · Ders

Tekrarsız En Uzun Alt Dize

Son görülen konumları bir pencerede izleyin.

Tekrarsız En Uzun Alt Dize, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 3. 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.

Klasik Bir Pencere Problemi

Tekrarlanan karakter içermeyen en uzun alt dizeyi bulun. Bu, neredeyse her değerlendiricide karşınıza çıkan, kaydırmalı pencerenin sevilen bir örneğidir. 🔤

Kaba Kuvvet Tuzağı

Her alt dizede tekrarları kontrol etmek yaklaşık O(n^2) veya daha fazla maliyet getirir. Uzun dizeler için bu fazlasıyla yavaştır; bu nedenle daha akıllı bir tarama gerekir.

Benzersiz Karakterlerden Oluşan Pencere

Her zaman benzersiz karakterleri barındıran bir pencere tutun. Sağı genişletin; bir tekrar ortaya çıktığında, tekrar ortadan kalkana kadar solu küçültün.

Son Konumları Hatırlayın

Her karakterin son indeksini bir sözlükte saklayın. Böylece tarama sırasında bir tekrarın en son nerede görüldüğünü anında öğrenebilirsiniz.

last = {}
left = 0
best = 0

Her Karakteri Tarayın

Dizge üzerinde sağ ile döngü kurarak her adımda hem indeksi hem de o konumdaki karakteri okuyun. Bu, pencereyi her seferinde bir konum ileri taşır.

for right, ch in enumerate(s):

Sol İşaretçiyi Atlatarak İlerletin

Karakter geçerli pencerenin içinde görülmüşse solu, karakterin son konumunun hemen sonrasına taşıyın. Böylece tekrarı tek hamlede kaldırırsınız.

    if ch in last and last[ch] >= left:
        left = last[ch] + 1

Güncelleyin ve Ölçün

Bu karakterin yeni konumunu kaydedin; ardından soldan sağa uzanan pencere tekrarsız olur. Uzunluğu sağ eksi sol artı birdir.

    last[ch] = right
    best = max(best, right - left + 1)

Koruyucu Kontrol Neden Önemlidir

last[ch] >= left kontrolü gereklidir. Bu kontrol olmadan, pencerenin dışındaki eski bir konum solu yanlışlıkla geriye çeker.

Doğrusal Zaman, Doğrusal Alan

Her karakter bir kez ziyaret edilir ve sol yalnızca ileri hareket eder; bu nedenle tarama O(n) sürer. Sözlük, benzersiz karakterler için alan kullanır.

Kenar Durumlarını Kapsayın

Boş bir dizge için cevap sıfır, tek bir tekrarlanan harften oluşan dizge için cevap birdir. Göndermeden önce her ikisini de doğrulayarak sinsi bir WA'dan kaçının.

Yeniden Kullanılabilir Kalıp

Son görülen konumlar eşlemesi ile sıçrayarak ilerleyen sol işaretçi, en fazla bir tekrar içeren pencereler gibi birçok benzersizlik problemine uyarlanabilir.

Hızlı Kontrol

En uzun benzersiz alt dizeyi ararken her karakterin son indeksini tarama boyunca takip ediyorsunuz.

Özet

Benzersiz karakterlerden oluşan bir pencereyi kaydırın, her karakterin son konumunu saklayın ve tekrarların ötesine geçecek şekilde solu ilerletin. Bu klasik problem O(n) sürede çözülür. ✅

Sıkça Sorulan Sorular

“Tekrarsız En Uzun Alt Dize” dersi ücretsiz mi?

Evet — “Tekrarsız En Uzun Alt Dize” 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.

“Tekrarsız En Uzun Alt Dize” dersinde ne öğreneceğim?

Son görülen konumları bir pencerede izleyin. 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 3. dersidir.

“Tekrarsız En Uzun Alt Dize” 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. Sabit Boyutlu Pencere Toplamları
  2. İki İşaretçiyle Değişken Pencere
  3. Tekrarsız En Uzun Alt Dize
  4. Bir Kuralı Karşılayan Pencereleri Sayma
← Coding Interview Prep Sayfasına Dön