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.
Daily Temperatures
Her gün için, sonraki daha sıcak günü kaç gün sonra? Yoksa 0. Örnek: [73,74,75,71,69,72,76,73] → [1,1,4,2,1,1,0,0]. Stack (monotonic decreasing) ile O(n) çözüm: indeksleri tut.
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 {countQueue}+ soru.
Python Heap
heapq, priority queue için {countHeap}+ soru.
Python Algoritma Soruları
Sıralama, arama, DP, graf.
Tüm Mülakat Kategorileri
9 kategori, 85 soru.
Python Eğitimi
Sıfırdan ileri seviyeye Türkçe dersler.