Valid Parentheses
Bir string'de parantezler dengeli mi kontrol et. Sadece () [] {} karakterleri. Açılışta stack push, kapanışta pop ve eşleşme kontrolü. Kapanışta stack boşsa False döndür.
Min Stack
Stack O(1)'de push, pop, top, getMin. Her değer için şu ana kadarki min'i sakla.
Daily Temperatures
Her gün için, sonraki daha sıcak günü kaç gün sonra? Yoksa 0.
Evaluate Reverse Polish Notation
Reverse Polish Notation (RPN) ifadesini hesapla. Token'lar liste halinde gelir. Sayılar int, operatörler '+', '-', '*', '/' olabilir. Bölme trunc towards zero. Stack kullan: sayı push, operatör gelince 2 pop.
Largest Rectangle in Histogram
Histogramdaki en büyük dikdörtgen alanı bul. Her bar yüksekliği heights[i]. Dikdörtgen bir veya birden fazla ardışık bar kullanabilir. Monotonik stack ile O(n).
Python Stack Nedir?
Stack (Yığın) Nedir?
Stack, LIFO (Last-In, First-Out — son giren ilk çıkar) prensibiyle çalışan bir veri yapısıdır. İki temel işlemi vardır: push (yığına ekle) ve pop (yığının tepesinden çıkar). Python'da list doğal olarak stack olarak kullanılabilir: append push, pop pop işlemi yapar.
Stack'in klasik kullanım alanları: parantez dengesi kontrolü, undo/redo, DFS (derinlik öncelikli arama), expression evaluation (RPN), call stack (programlama dillerinde fonksiyon çağrı zinciri), string reverse(karakterleri yığına at, sonra çek). Mülakatlarda en sık sorulan soru "parantezleri dengeli mi?" problemidir.
# Stack — list ile
stack = []
stack.append("a") # push
stack.append("b")
stack.append("c")
print(stack) # ['a', 'b', 'c']
top = stack.pop() # pop → 'c'
print(stack) # ['a', 'b']
# peek (sadece göster, çıkarma)
if stack:
print(stack[-1]) # 'b'
# Parantez dengesi örneği
def is_balanced(s: str) -> bool:
stack = []
pairs = {")": "(", "]": "[", "}": "{"}
for c in s:
if c in "([{":
stack.append(c)
elif c in ")]}":
if not stack or stack.pop() != pairs[c]:
return False
return not stack
print(is_balanced("({[]})")) # True
print(is_balanced("({[})")) # FalseStack vs Queue vs Deque
Stack'in LIFO yapısının tersi queue'nun FIFO (First-In, First-Out) yapısıdır. İkisi de sıralı veri saklar ama çıkarma sırası farklıdır. Doubly-ended queue (deque) ise her iki uçtan da ekleme/çıkarma yapabilen hibrit bir yapıdır — Python'da collections.deque ile kullanılır. Çok yönlü bir yapı gerektiğinde deque, basit LIFO için list tercih edilir.
list'ini kullan. Edge case'leri unutma: sadece açılış parantez varsa (kapanmamış), sadece kapanış varsa, içiçe birden fazla tip parantez.- Parantez dengesi kontrolü: derleyici/interpreter doğrulama
- Undo/redo: editör, IDE, grafik uygulamalar
- DFS (depth-first search): graf/tree dolaşma
- Call stack: programlama dili fonksiyon çağrı yönetimi
- RPN calculator: ters Polonyalı ifade değerlendirme
- String reverse: karakterleri sırayla push, sonra pop
İlgili Kategoriler
Veri Yapıları
Tüm veri yapıları.
Python Queue
FIFO queue için 5+ soru.
Python Heap
heapq, priority queue için 8+ soru.
Python Algoritma Soruları
Sıralama, arama, DP, graf.
Tüm Mülakat Kategorileri
9 kategori, 132 soru.
Python Eğitimi
Sıfırdan ileri seviyeye Türkçe dersler.