DSA mülakat soruları
Yazan: Aaron Cao · Güncellendi

DSA mülakatları, yüzlerce benzersiz problem yerine küçük bir kalıp kümesini tekrar tekrar kullanır. Diziler ve dizgiler, two pointers ve sliding window, hashing, ikili arama, ağaçlar ve çizgeler, heap'ler ve dinamik programlama beklenir; bunlar çözerken sesli olarak anlatmanız beklenen canlı problemler olarak sorulur.
Bir DSA mülakatı gerçekte neyi test eder?
Yüzlerce problem çözmüş olsanız da hâlâ hazır hissetmiyorsanız, bu genellikle alıştırmanın yanlış yarısına odaklandığınız anlamına gelir. Bu bölüm neyin puanlandığını netleştirir, böylece pratiğiniz onunla örtüşebilir.
Canlı bir veri yapıları ve algoritmalar turu aynı anda dört şeyi ölçer: problemin hangi kalıba ait olduğunu tanıyıp tanımadığınızı, kod yazmadan önce yaklaşımı ifade edip edemediğinizi, uygulamanın sınır durumlarında doğru olup olmadığını ve karmaşıklığı sesli olarak akıl yürütüp yürütemediğinizi. Adaylar genellikle üçüncüsünü optimize edip ikincisini ihmal eder, ardından açıklamasız gelen doğru bir çözüm yüzünden düşük not alır.
Tanıma adımı, kalıp pratiğinin niceliğe üstün gelmesinin nedenidir. Problemler nadiren gerçekten yenidir; çoğu yeniden birleştirmedir. Bu, bir frekans haritası üzerinde sliding window diyebildiğiniz an ilk dakikanın içinde, gerisi uygulamadan ibarettir. Dile ve role göre ilgili soru bankaları mülakat soruları merkezinde yer alır.
Hangi kalıpları bilmelisiniz?
Bu kalıplar sorulanların büyük çoğunluğunu oluşturur. Her birine işaret eden sinyali tanımayı öğrenin.
- Two pointers. Sıralı girdi, çift toplamları, yerinde (in-place) bölümleme, palindrom kontrolleri.
- Sliding window. Bir kısıtlama altında en uzun veya en kısa bitişik alt dizi.
- Hash map ile sayma. Anagramlar, tekrarlar, frekans karşılaştırmaları, ilk benzersiz eleman.
- İkili arama. Sıralı diziler ve dizi sıralı değilse cevap uzayında arama.
- Genişlik öncelikli ve derinlik öncelikli arama. Ağaçlar, ızgaralar, bağlı bileşenler, ağırlıksız en kısa yol.
- Heap ve öncelik kuyruğu. En iyi-k problemleri, sıralı akışları birleştirme, çalışan medyanlar.
- Aralıklar. Başlangıca göre sıraladıktan sonra birleştirme, ekleme ve çakışma tespiti.
- Dinamik programlama. Örtüşen alt problemler: merdiven çıkma, bozuk para problemi, düzenleme mesafesi, alt diziler.
- Geri izleme (backtracking). Permütasyonlar, kombinasyonlar, alt kümeler, kısıtlama bulmacaları.
- Çizge algoritmaları. Topolojik sıralama, union find, ağırlıklı en kısa yol.
Konuya göre hangi sorular çıkar?
Mülakatçıların ifade ettiği şekliyle örnek sorular:
- Bir dizide toplamı hedefe eşit olan iki sayı bulun, ardından bunu ekstra alan kullanmadan yapın.
- Tekrar eden karakter içermeyen en uzun alt dizginin uzunluğunu döndürün.
- Döndürülmüş sıralı bir dizi verildiğinde, hedefi logaritmik zamanda bulun.
- Çakışan aralıkları birleştirin ve sıralamanın maliyetine neden değdiğini açıklayın.
- Bir ikili ağacı ters çevirin, ardından maksimum derinliğini bulun.
- Bir ikili arama ağacını doğrulayın ve naif bir kontrolün neyi kaçırdığını söyleyin.
- Bir ızgaradaki adaları sayın, ardından bellek için çok büyük bir ızgarayı nasıl ele alacağınızı söyleyin.
- En sık geçen k elemanı bulun ve veri yapınızı neden seçtiğinizi gerekçelendirin.
- Bir miktar için gereken minimum bozuk para sayısını hesaplayın ve yinelemeyi belirtin.
- Bağlı bir listede döngü tespit edin, ardından döngünün başladığı düğümü döndürün.
- Bir ikili ağacı serileştirin ve seri durumdan çıkarın.
- Ders ön koşulları verildiğinde, programın mümkün olup olmadığına karar verin.
Backend pozisyonu için mülakata giren yeni bir mezuna alt dizgi problemi verilir ve hemen yazmaya başlar. Kod neredeyse doğrudur, ama mülakatçı turun tamamını kodun ne yaptığını sorarak geçirir ve puan, hatayı değil sessizliği yansıtır. Bir karakter haritası üzerinde pencere, sağa genişlet, bir tekrarda soldan daralt, maksimumu takip et demek için kırk saniye harcayan bir aday, toparlanması en zor kısmı zaten geçmiştir.
Çözerken konuşmayı nasıl pratik edersiniz?
Sessizce çözmek yanlış refleksi geliştirir. Canlı tur, anlatım ve kodu aynı anda gerektirir ve bu, ikisinden herhangi birinden ayrı bir beceridir.
Problem setini değil, alıştırmayı değiştirin. Herhangi bir şey yazmadan önce kalıbı, yaklaşımı ve beklenen karmaşıklığı sesli söyleyin. Anlatmaya devam ederken kodu yazın. Bitirdiğinizde karmaşıklığı tekrar belirtin ve ele aldığınız bir sınır durumu ile soracağınız bir sınır durumu daha adlandırın. Bunu on problemde yapmak, elli problemi sessizce çözmekten daha fazla mülakat yeteneği kazandırır.
Bir mock interview oturumu, tek başına prova edilemeyen kısım olan ek soruları sağlar ve kendi anlatımınızın gözden geçirebileceğiniz bir kaydını verir. Baştan sona geçerli tek dürüst sınır şudur: gözetimli, tarayıcı içinde yazılı bir kodlama değerlendirmesi bir sohbet değildir ve hiçbir canlı asistan buna dahil olmamalıdır. Mülakat türleri merkezi, hangi kodlama formatlarının canlı, hangilerinin otomatik olduğunu ele alır.
SSS
Bir DSA mülakatından önce kaç problem çözmeliyim?
Dinamik programlama çoğu mülakat için gerekli midir?
Sorulmadan karmaşıklığı belirtmeli miyim?
Optimal çözümü bulamazsam ne olur?
Bir yapay zeka asistanı DSA turunda yardımcı olabilir mi?
İlgili sorular
- Bir HireVue video mülakatında hangi sorular sorulur?
- Bir AWS mülakatında hangi sorular sorulur?
- Satış mülakatında hangi sorular sorulur?
- Power BI mülakatlarında gerçekte hangi sorular sorulur?
- Müşteri hizmetleri mülakatında hangi sorular sorulur?
- Kâr amacı gütmeyen bir kuruluşta iş görüşmesinde hangi sorular sorulur?