Yeni Nesil Python Algoritmik Değerlendirme İstasyonu
Teknik Mülakat Becerilerinizi Canlı Mühendislik Simülasyonunda Kanıtlayın
30 tamamen özgün algoritma ve veri yapısı problemi (10 Temel, 10 Kıdemli, 10 Başmühendis). Genişletilmiş sınır durum testleri, yerel Pyodide Python 3.11 WASM motoru, yapay zekâ başmülakatçı diyalogları ve veritabanı denetim mimarisi.
WASM kod yürütme, Supabase kayıtları & GA4 etkinlik telemetrisi
Sistem Aktif & Sağlıklı
Toplam Soru Havuzu
30
3 Zorluk Seviyesi
Test Doğrulamaları
428+
Yerel & Sunucu Testleri
Ortalama Çözüm Oranı
%68.4
Genişletilmiş test doğrulaması
Aktif Mühendis
184+
Supabase profili ile kayıtlı
Pyodide WASM Motoru
Python kodlarınız tamamen tarayıcınızda sıfır gecikmeyle derlenir ve yerel sandbox içinde yürütülür. Standart print çıktıları terminalde anında gösterilir.
AI Başmülakatçı Eşliği
Kıdemli teknik lead rolündeki AI mülakatçısı kodunuzu inceler, Big-O karmaşıklığınızı değerlendirir ve soruya özel derinleşme soruları yöneltir.
Genişletilmiş Test Denetimi
Her soru için 12-23 kapsamlı test senaryosu ve sınır durum doğrulaması. Supabase entegrasyonu ile resmi gönderimler profilinizde kalıcı saklanır.
Mülakat Soru Kataloğu (30 Soru)
Teknik Problem Havuzu & Değerlendirme Modülleri
Kolay, Orta ve Zor seviyelerde yapılandırılmış, gerçek teknik mülakat senaryolarına dayanan orijinal Python problemleri.
Bir kargo şubesinin tartım bandı, gün boyunca işlenen her paketin gram cinsinden ağırlığını sırayla kaydediyor. Şube müdürü, "ortalamanın üstünde ağırlığa sahip kaç paket var?" sorusunun cevabını istiyor.
Ağırlık listesi verildiğinde, listenin ARİTMETİK ORTALAMASINDAN KESİN OLARAK BÜYÜK olan paket sayısını döndür.
Bir destek talebi uygulaması, kullanıcı yorumlarını ekranda göstermeden önce kısmen maskelemek istiyor. Kural şu: her kelimenin İLK ve SON karakteri görünür kalır, aradaki tüm karakterler `*` ile örtülür. Kelimeler tek boşlukla ayrılmıştır ve boşluklar aynen korunur. Uzunluğu 2 veya daha az olan kelimeler hiç değişmez (örtülecek orta kısmı yoktur).
Bir meteoroloji istasyonu, bir ay boyunca her gün aynı saatte sıcaklık ölçümü yapıyor. İstasyon şefi, "art arda iki gün arasındaki en sert sıcaklık değişimi ne kadardı?" sorusunu cevaplamak istiyor. Değişimin yönü önemli değil, yalnızca BÜYÜKLÜĞÜ önemli.
Sıcaklık listesi verildiğinde, ardışık iki ölçüm arasındaki EN BÜYÜK MUTLAK FARKI döndür.
Bir depo sisteminde ürün kodları 1'den n'e kadar kesintisiz numaralandırılmıştır. Gece vardiyasında yapılan sayımda bazı ürünler okutulmuş, ancak liste SIRASIZ olarak kaydedilmiştir. Depo sorumlusu hangi kodların hiç okutulmadığını, yani rafta eksik görünen ürünleri öğrenmek istiyor.
n ve okutulan kodların listesi verildiğinde, EKSİK olan kodları ARTAN SIRADA bir dizi olarak döndür.
Bir market kasasında yalnızca şu madeni paralar vardır: 1, 5, 10, 25 ve 50 birim. Kasiyer, para üstünü HER ZAMAN EN AZ ADET madeni para ile vermek zorundadır; çünkü kasada para stoğu sınırlı.
Verilmesi gereken tutar verildiğinde, gereken EN AZ madeni para ADEDİNİ döndür. Tutar negatifse (geçersiz işlem) -1 döndür.
Bir sunucu, aynı karakterin ardışık tekrarlarından oluşan ham log satırları üretiyor. Depolama maliyetini düşürmek için bu satırlar "çalışma uzunluğu kodlaması" (run-length encoding) ile sıkıştırılacak.
Kural: metni soldan sağa oku, ardışık aynı karakterlerden oluşan her grup için önce KARAKTERİ sonra GRUPTAKİ TEKRAR SAYISINI yaz. Grup uzunluğu 1 olsa bile sayı yazılır. Boş metin için boş metin döner.
Bir fabrikanın vardiya kayıtları, her işçinin makinede geçirdiği zaman aralıklarını tutuyor. Aralıklar [başlangıç, bitiş] biçiminde ve YARI AÇIK: başlangıç saati dahil, bitiş saati hariç. Aynı makinede birden fazla işçi aynı anda çalışmış olabilir, yani aralıklar çakışabilir veya biri diğerini tamamen kapsayabilir.
Bakım ekibi, makinenin TOPLAM KAÇ SAAT ÇALIŞTIĞINI bilmek istiyor. Çakışan saatler YALNIZCA BİR KEZ sayılmalıdır.
Aralık listesi verildiğinde, birleşimin toplam uzunluğunu döndür.
Bir dersin not dökümü sistemine sayısal notlar giriliyor ve sistem bunları harf notuna çeviriyor. Ölçek şu:
not >= 90 -> "AA"
80 <= not < 90 -> "BA"
70 <= not < 80 -> "BB"
60 <= not < 70 -> "CB"
50 <= not < 60 -> "CC"
not < 50 -> "FF"
Sayısal not listesi verildiğinde, aynı sıradaki harf notlarından oluşan diziyi döndür.
Bir kitapçının vitrin rafı, kitap sırtlarının estetik görünmesi için özel bir kuralla diziliyor: önce UZUNLUĞU KISA olanlar solda, uzun olanlar sağda. Aynı uzunluktaki kitaplar ise ALFABETİK SIRAYA göre diziliyor.
Kitap adı listesi verildiğinde, bu kuralla sıralanmış adları TEK BOŞLUKLA birleştirilmiş tek bir metin olarak döndür.
Bir video platformu, oynatma sırasında her saniye için tampon (buffer) durumunu kaydediyor: 1 = o saniyede veri geldi, 0 = veri gelmedi.
Kalite ekibi, "kullanıcı en uzun kaç saniye boyunca KESİNTİSİZ veri aldı?" sorusunu cevaplamak istiyor.
Saniye bazlı kayıt dizisi verildiğinde, EN UZUN ARDIŞIK 1 SERİSİNİN uzunluğunu döndür.
Bir depo yönetim sisteminde, en sık sorgulanan ürün bilgileri bellekte tutuluyor. Bellek kapasitesi SINIRLI: en fazla `kapasite` kadar ürün saklanabiliyor. Yer kalmadığında, EN UZUN SÜREDİR KULLANILMAYAN (least recently used) ürün bellekten atılıyor. Bir ürünü okumak (get) onu "kullanılmış" sayar ve yenilik sıralamasında en sona taşır.
Sırayla gelen işlemler veriliyor. Her işlem şu iki biçimden biri:
["put", anahtar, değer] -> anahtarı belleğe yaz (varsa değerini güncelle)
["get", anahtar] -> anahtarı oku
Her "get" işleminin sonucunu, işlem sırasını koruyarak bir diziye yaz ve bu diziyi döndür. Anahtar bellekte varsa DEĞERİ, yoksa -1 yazılır. "put" işlemleri çıktı dizisine HİÇBİR ŞEY YAZMAZ.
Bir üretim hattının günlük hammadde hareketleri kaydediliyor: pozitif sayı o gün gelen sevkiyatı, negatif sayı o gün üretimde harcanan miktarı gösteriyor. Hattın DURMAMASI için, gün sonunda depodaki hammadde miktarı HİÇBİR GÜN NEGATİFE DÜŞMEMELİ (0 olabilir, 0 sorun değil).
Depoya başlangıçta konulacak EN AZ miktardaki hammaddeyi bul. Bu miktar negatif olmayan bir tam sayı olmalıdır.
Bir e-ticaret sitesinin sipariş kayıtları, (müşteri adı, sipariş tutarı) ikilileri hâlinde tutuluyor. Aynı müşteri birden fazla sipariş vermiş olabilir; o müşterinin DEĞERİ, tüm sipariş tutarlarının TOPLAMIdır.
Pazarlama ekibi en değerli k müşterisini bir kampanyaya dahil etmek istiyor. Müşterileri toplam tutarlarına göre AZALAN sırada diz. TOPLAM TUTARI EŞİT olan müşteriler arasında ise alfabetik olarak ÖNCE GELEN önce yazılsın. Bu sıralamadaki İLK k müşterinin adını dizi olarak döndür.
Bir yapılandırma dosyası yalnızca açılış `(` ve kapanış `)` etiketlerinden oluşuyor. Dosya bozulmuş ve DENGESİZ hâle gelmiş olabilir. Dosyayı ONARMAK için yalnızca bir işlem yapabilirsin: etiket SİLMEK.
Silmenin maliyeti asimetriktir:
• bir kapanış etiketi `)` silmenin maliyeti 1
• bir açılış etiketi `(` silmenin maliyeti 2
Dosyayı TAMAMEN DENGELİ hâle getirmenin EN DÜŞÜK TOPLAM MALİYETİNİ döndür.
Dengeli = her açılış için bir kapanış var ve hiçbir noktada kapanış sayısı açılış sayısını geçmiyor.
Ele geçirilmiş bir metin, Sezar şifresiyle (her harfin alfabede sabit sayıda kaydırılması) kodlanmış. Kaydırma miktarı BİLİNMİYOR, ama 0 ile 25 arasında bir tam sayı olduğu biliniyor. Boşluklar şifrelenmemiştir ve aynen korunur.
Elimizde küçük bir sözlük var (sık kullanılan kelimeler). DOĞRU kaydırma miktarı, çözülen metinde SÖZLÜKTEKİ KELİMELERDEN EN ÇOĞUNU üreten kaydırmadır. Birden fazla kaydırma aynı sayıda eşleşme veriyorsa EN KÜÇÜK kaydırma seçilir.
Şifreli metin ve sözlük verildiğinde, ÇÖZÜLMÜŞ METNİ döndür.
Bir API ağ geçidi, gelen her isteğin zaman damgasını (saniye cinsinden tam sayı) kaydediyor. Aynı saniyede birden fazla istek gelebilir.
Kapasite planlaması için şu soru cevaplanacak: uzunluğu `pencere` saniye olan KAYAN bir zaman penceresi, EN FAZLA isteği içine aldığında bu pencere HANGİ SANİYEDE BAŞLIYORDU?
Pencere YARI AÇIKTIR: [t, t + pencere) -> t saniyesi dahil, t + pencere saniyesi HARİÇ. Yalnızca BİR İSTEĞİN GELDİĞİ saniyeler pencere başlangıcı adayıdır.
Birden fazla başlangıç aynı maksimum sayıyı veriyorsa EN ERKEN olanı döndür. Kayıt boşsa 0 döndür.
Bir derleme sistemi, 0'dan n-1'e kadar numaralanmış görevleri çalıştıracak. Bazı görevler diğerlerine bağımlı. Bağımlılıklar [a, b] ikilileriyle veriliyor ve anlamı şu: "a GÖREVİ, b GÖREVİNDEN ÖNCE tamamlanmalıdır" (yani b, a'ya bağımlıdır).
Görevlerin GEÇERLİ bir çalışma sırasını döndür. Birden fazla geçerli sıra olabilir; bunların arasından SÖZLÜK SIRASI BAKIMINDAN EN KÜÇÜK OLANI (lexicographically smallest) döndür.
Bağımlılıklar bir DÖNGÜ oluşturuyorsa geçerli bir sıra yoktur; bu durumda BOŞ DİZİ [] döndür.
Bir ikili ağaç, DÜZEY SIRALI (level-order) bir diziyle temsil ediliyor: indeks i'deki düğümün sol çocuğu 2i+1, sağ çocuğu 2i+2 indeksindedir. Var olmayan bir düğüm `null` (Python'da `None`) ile gösterilir.
Ağacın HER KATMANINDAKİ değerlerin toplamını, kök katmanından en derin katmana doğru sırayla bir dizi olarak döndür. `null` düğümler toplamı etkilemez. Bir katmanda HİÇ gerçek düğüm yoksa (katman tamamen null ise) orada durulur; sonraki katmanlar çıktıya yazılmaz.
Bir terminal uygulaması, uzun bir metni sabit genişlikte bir alana sığdırmak istiyor. Metin kelimeler hâlinde veriliyor ve şu AÇGÖZLÜ (greedy) kuralla satırlara bölünüyor:
• Soldan sağa kelime kelime ilerle.
• Mevcut satıra bir kelime daha eklemek, satırı `genislik` karakteri AŞMIYORSA ekle (kelimeler arasına tam bir boşluk konur).
• Aşıyorsa mevcut satırı kapat ve kelimeyi YENİ bir satıra başlat.
• Bir kelime tek başına `genislik`ten uzunsa KESİLMEDEN kendi satırında durur (o satır genişliği aşabilir; bu istisnadır).
Satırları `\n` karakteriyle birleştirip TEK BİR METİN olarak döndür. Satır sonlarında HİÇBİR ZAMAN fazladan boşluk olmaz.
Bir etkinlik sisteminde bilet numaraları üretilmiş, ancak bir hata sonucu AYNI numara birden fazla bilete atanmış ve bazı numaralar geçersiz (0 veya negatif) çıkmıştır. Sistem kuralları şunları gerektirir:
• Her bilet numarası BENZERSİZ olmalıdır.
• Her bilet numarası EN AZ 1 olmalıdır.
• Bir numarayı yalnızca ARTIRABİLİRSİN; azaltmak veya silmek yasak.
• Her 1 birimlik artışın maliyeti 1'dir.
Numara listesi verildiğinde, listeyi kurallara uygun hâle getirmenin EN DÜŞÜK TOPLAM MALİYETİNİ döndür.
Bir lojistik firmasının elinde, sırayla yüklenmesi gereken n adet yük var. Yüklerin ağırlıkları `yukler` dizisinde SIRALI olarak verilmiştir ve bu SIRA DEĞİŞTİRİLEMEZ (yükleme rampası tek yönlü).
Firma k adet kamyon kiralayacak. Yükler kamyonlara ARDIŞIK DİLİMLER hâlinde bölünecek: her kamyon EN AZ bir yük almalıdır ve tüm yükler dağıtılmalıdır.
Firma EN YÜKLÜ kamyonun ağırlığını EN AZA indirmek istiyor. Bu minimum olası "en yüklü kamyon ağırlığını" döndür. Geçersiz bir durum varsa (k > n veya k < 1) -1 döndür.
Bir enerji şirketi n adet trafo merkezini, iki yönlü iletim hatlarıyla birbirine bağlıyor. Hat listesi [a, b, uzunluk] üçlüleriyle veriliyor ve şebeke bir AĞAÇ oluşturuyor (n düğüm, n-1 hat, tam bağlı, döngü yok).
Şirket, yıllık bakım turu için ŞEBEKEDEKİ EN UZUN BASİT ROTAYI çıkarmak istiyor: bir trafo merkezinden başlayıp başka bir trafo merkezinde biten, hiçbir hattı İKİ KEZ kullanmayan ve TOPLAM HAT UZUNLUĞU EN BÜYÜK olan rota.
Bu en uzun rotanın toplam uzunluğunu döndür.
Bir güvenlik ekibi, sahte hesapları tespit etmek için giriş kayıtlarını inceliyor. Her kayıt (kullanıcı adı, cihaz kimliği) ikilisinden oluşuyor.
Kural şu: AYNI CİHAZI kullanan iki kullanıcı büyük olasılıkla aynı kişidir ve aynı KÜMEYE konur. Bir kullanıcı birden fazla cihaz kullanabilir; bu durumda o kullanıcının tüm cihazları, o cihazları paylaşan TÜM kullanıcıları tek bir kümede BİRLEŞTİRİR. Yani ilişki GEÇİŞLİDİR.
Kayıtlar verildiğinde, oluşan kümelerin BOYUTLARINI (kümedeki BENZERSİZ kullanıcı sayısı) AZALAN SIRADA bir dizi olarak döndür.
Bir yatırımcı n gün boyunca bir hissenin günlük kapanış fiyatlarını gözlemliyor. Kurallar:
• Aynı anda EN FAZLA BİR pozisyon tutabilir (elinde hisse varken yeni hisse ALAMAZ; önce satması gerekir).
• İstediği kadar AL-SAT yapabilir (işlem sayısı sınırsız).
• Bir hisseyi SATTIKTAN SONRA, BİR SONRAKİ GÜN hiçbir işlem yapamaz (bekleme süresi / cooldown).
• Her SATIŞ işlemi sabit bir `islemUcreti` maliyeti getirir. Alışta ücret yoktur.
• Hiç işlem yapmamak her zaman geçerlidir (kâr 0).
Günlük fiyat listesi ve işlem ücreti verildiğinde, elde edilebilecek EN YÜKSEK TOPLAM KÂRI döndür.
Bir dizgi sistemi, kelimeleri `genislik` karakterlik bir alana yerleştirecek. GÖRSEL KALİTEYİ sayısal olarak ölçen bir maliyet fonksiyonunu EN AZA indirir.
Maliyet tanımı:
• Bir satırdaki kelimelerin toplam uzunluğu + aralarındaki tek boşluklar hesaplanır. Satırda kalan BOŞ karakter sayısına "artık" denir.
• O satırın maliyeti = (artık)²
• SON SATIRIN maliyeti HER ZAMAN 0'dır (son satır sağa kadar doldurulmaz, doğal hâliyle bırakılır).
• Toplam maliyet = tüm satırların maliyetlerinin toplamı.
Kelimeler SIRASI DEĞİŞTİRİLMEDEN ve BÖLÜNMEDEN satırlara dağıtılmalıdır. Kelime tek başına genişlikten uzunsa -1 döndür.
Bir genom laboratuvarı, iki farklı deneyden elde edilen DNA dizilerini TEK BİR referans dizide birleştirmek istiyor. Birleştirilmiş dizi, HER İKİ orijinal diziyi de (karakter sırası korunarak, aralıklı olabilir biçimde) ALT DİZİ olarak içermelidir.
Amaç: bunu sağlayan EN KISA birleştirilmiş diziyi bulmak. Birden fazla en kısa sonuç varsa, SÖZLÜK SIRASI BAKIMINDAN EN KÜÇÜK olanı döndür.
Bir akıllı şehir sistemi n adet kavşakta araç sayısını izliyor. Kavşaklar 0'dan n-1'e kadar numaralanmıştır ve başlangıçta HEPSİNDE 0 araç vardır.
Sisteme sırayla iki tür işlem gelir:
["add", i, d] -> i. kavşaktaki araç sayısına d EKLE (d NEGATİF OLABİLİR).
["sum", l, r] -> l ve r DAHİL olmak üzere [l, r] aralığındaki kavşakların TOPLAM araç sayısını raporla.
Her "sum" işleminin sonucunu, işlem sırasını koruyarak bir diziye yaz ve bu diziyi döndür. "add" işlemleri çıktıya bir şey yazmaz.
SORGULAR HIZLI OLMALIDIR: her iki işlem türü de en kötü O(log n) karmaşıklığında çalışmalıdır.
Bir dağıtım şirketi, numaralanmış depolar arasında bir kontrol turu planlıyor. Tur 0 NUMARALI DEPODAN başlar, diğer TÜM depoları TAM OLARAK BİR KEZ ziyaret eder ve 0 numaralı depoya GERİ DÖNER.
Depolar arasındaki mesafeler SİMETRİK bir matrisle verilmiştir: `mesafeler[i][j]` = i deposu ile j deposu arasındaki mesafe, ve `mesafeler[i][j] == mesafeler[j][i]`, `mesafeler[i][i] == 0`.
Bu turun MÜMKÜN OLAN EN KISA TOPLAM MESAFESİNİ döndür.
Boşlukları silinmiş bir mesaj elimize ulaştı. Mesaj yalnızca küçük harflerden oluşuyor ve elimizde bir KELİME SÖZLÜĞÜ var.
Mesajı, sözlükteki kelimeleri YAN YANA getirerek (araya hiçbir karakter eklemeden) kaç FARKLI ŞEKİLDE yeniden kurabiliriz?
Kurallar:
• Sözlükteki bir kelime BİRDEN FAZLA KEZ kullanılabilir.
• Sözlükte TEKRAR EDEN kelimeler olabilir; bunlar AYNI kelime sayılır (aynı ayrıştırma iki kez sayılmaz).
• Kelimelerin sırası mesajdaki sıraya uymalıdır.
Farklı ayrıştırma sayısını 1.000.000.007 modunda döndür.
Bir belediye, n adet düğüm noktasından oluşan bir su şebekesi işletiyor. Düğüm 0 ARITMA TESİSİ (kaynak), düğüm n-1 ise ŞEHİR GİRİŞİ (hedef)tir.
Borular `hatlar` listesinde [a, b, kapasite] üçlüleriyle veriliyor. Borular İKİ YÖNLÜDÜR: su her iki yönde de akabilir ve aynı iki düğüm arasında birden fazla boru varsa KAPASİTELERİ TOPLANIR.
Şebekeden kaynaktan hedefe SANİYEDE EN FAZLA KAÇ BİRİM SU akıtılabilir?
FastAPI v0.115: Pydantic V2 Tam Entegrasyonu ve Performans Artışı
Modern Python mikroservis mimarilerinin vazgeçilmezi FastAPI, Pydantic V2 ile serileştirme hızını 5 katına çıkardı. Asenkron test pratikleri güncellendi.
Python 3.13 ve Free-Threaded (No-GIL) Modu Yayınlandı
Python topluluğunun yıllardır beklediği Global Interpreter Lock (GIL) opsiyonel hale geldi. Çok çekirdekli CPU'larda saf Python iş parçacıkları artık gerçek paralel çalışabiliyor.