Matris Çarpımı
İki matrisi çarpan bir fonksiyon yaz. Sol matrisin sütun sayısı sağ matrisin satır sayısına eşit olmalıdır; sonuç matrisi (m x p) boyutunda olur. Standart iç-çarpım algoritması kullan.
En Uzun Artan Alt Dizi
Bir dizideki en uzun sürekli artan alt dizinin uzunluğunu bul. Sürekli = ardışık indisler (skip yok). Örnek: [10, 9, 2, 5, 3, 7, 101, 18] için 4 ([2,3,7,101] veya [3,5,7,18]). DP yaklaşımı: dp[i] = nums[i]'den biten en uzun artan alt dizi.
Kümülatif Toplam
Bir listenin kümülatif (birikimli) toplamını hesapla. Her index i için sonuç[i] = input[0] + input[1] + ... + input[i]. Boş liste için boş liste döndür.
Tekrarlayan Elemanları Bul
Bir koleksiyonda birden fazla geçen elemanları bulun. Koleksiyon tipini sen seç: hangi yapı en verimli?
En Sık Geçen Eleman
Bir koleksiyonda en çok geçen elemanı bul. Birden fazla aynı frekansta varsa ilkini döndür.
Sıralı Dizide Hızlı Arama
Sıralı bir koleksiyonda belirli bir değeri hızlıca bul. O(n) linear yerine O(log n) binary search kullan. Örnek: [1,3,5,7,9,11] içinde 7 → indeks 3. Yoksa -1. bisect.bisect_left(arr, target) tek satırda.
Top-K En Küçük Eleman
Bir koleksiyondaki en küçük K elemanı döndür. Listeyi tam sıralama O(n log n) yerine heap ile O(n log k). Örnek: [3,1,4,1,5,9,2,6], k=3 → [1, 1, 2]. heapq.nsmallest(k, iterable).
Kelime Frekansı
Bir metindeki kelime frekanslarını dict olarak döndür. Noktalama ve büyük/küçük harf duyarlı olmasın.
Çoklu Anahtara Göre Sıralama
Bir sözlük listesini çoklu anahtara göre sırala. Önce yaşa göre artan, sonra ada göre alfabetik. Yapıyı sen seç.
Deque Kullanarak Kayan Pencere Maksimumu
Bir dizide k boyutunda kayan pencere ile her pencerenin maksimumunu bul. Örnek: [1,3,-1,-3,5,3,6,7], k=3 → [3,3,5,5,6,7]. Deque (monotonic queue) ile O(n) çözüm: önceki küçük elemanları at.
Parantez Dengeleme
Bir string'deki parantezlerin dengeli olup olmadığını kontrol et. Üç tip parantez: (), [], {}. Sadece bu karakterler dikkate alınır. Açılışta stack'e push, kapanışta pop ve eşleşme kontrolü.
Python Veri Yapıları Nedir?
Veri Yapıları Nedir?
Veri yapıları, veriyi organize etmenin, depolamanın ve üzerinde işlem yapmanın yollarıdır. Doğru veri yapısı seçimi, algoritmanın hızını ve bellek kullanımını doğrudan etkiler. Mülakatlarda en sık sorulan veri yapıları: stack (yığın), queue (kuyruk), linked list (bağlı liste), tree (ağaç), graph (çizge), heap ve hash table (sözlük).
Python'da yerleşik veri yapıları list, dict, set ve tuple ile başlar. collections modülünde ise deque, Counter, OrderedDict, defaultdict gibi gelişmiş yapılar yer alır.
from collections import deque, Counter, defaultdict
# Stack (LIFO) — list.append/pop
stack = []
stack.append(1) # push
stack.append(2)
stack.pop() # pop → 2
# Queue (FIFO) — deque
q = deque()
q.append(1) # enqueue (sağdan ekle)
q.append(2)
q.popleft() # dequeue (soldan çıkar) → 1
# Counter — sayım
sayim = Counter("abracadabra")
print(sayim.most_common(3)) # [('a', 5), ('b', 2), ('r', 2)]
# defaultdict — varsayılan değerli dict
graph = defaultdict(list)
graph["a"].append("b")Big-O Karmaşıklık ve Doğru Yapı Seçimi
Her veri yapısının ekleme, silme, arama işlemleri için farklı zaman karmaşıklıkları vardır. list araması O(n), dict araması O(1) ortalamadır. Bu yüzden sık arama yapılacaksa dict, sıralı veri veya benzersizlik gerekiyorsa set, LIFO gerekiyorsa list (append/pop), FIFO gerekiyorsa deque tercih edilir.
Mülakatlarda "neden bu veri yapısını seçtin?" sorusu sıklıkla gelir. Cevabını bil: O(1) mi O(n) mi, hangi edge case'lerde bozulur, hangi senaryolarda alternatif daha iyi olur.
collections modülünü kullan.- Stack (LIFO): undo/redo, parantez dengesi, DFS, expression evaluation
- Queue (FIFO): BFS, task scheduling, printer queue, message queue
- Linked List: sık insert/delete (ortada), bellek tasarrufu, dynamic size
- Tree (BST/Heap): sıralı erişim, range query, priority queue
- Graph: ağ yapıları, shortest path, dependency, sosyal ağ
- Hash Table (dict): O(1) arama, sayaç, memoization, cache
İlgili Kategoriler
Python Stack
Stack veri yapısı için {countStack}+ soru.
Python Queue
Queue veri yapısı için {countQueue}+ soru.
Python Heap
Heap / priority queue için {countHeap}+ soru.
Tüm Mülakat Kategorileri
9 kategori, 85 soru.
Python Eğitimi
Sıfırdan ileri seviyeye Türkçe dersler.
Python Temelleri
Değişkenler, veri tipleri, döngüler, fonksiyonlar.