İki kelimenin anagram olup olmadığını kontrol et.
Büyük/küçük harf ve boşluk fark etmesin.
İpuçları
💡 İpucu 1: Her iki string'i .lower() yap ve boşlukları kaldır.
💡 İpucu 2: sorted() ile harfleri sırala ve karşılaştır: sorted(a) == sorted(b)
💡 İpucu 3: Ya da Counter(a) == Counter(b) ile frekans karşılaştır.
Yaklaşım & Açıklama
Cumulative sum (kümülatif toplam), finansal analiz ve sinyal işlemede çok kullanılır.
**Problem:** [1, 2, 3, 4] → [1, 3, 6, 10].
**Üç yaklaşım:**
```python
import itertools
# 1. itertools.accumulate — en hızlı (C implementasyonu)
def cumsum(arr):
return list(itertools.accumulate(arr))
# 2. Manuel döngü
def cumsum(arr):
result = []
total = 0
for x in arr:
total += x
result.append(total)
return result
# 3. List comprehension (O(n²) — yavaş)
def cumsum(arr):
return [sum(arr[:i+1]) for i in range(len(arr))]
```
**Neden itertools en hızlı?** C-level implementasyonu, Python interpreter overhead'i yok.
**Pandas ile:** `df['cumulative'] = df['value'].cumsum()`
**Gerçek dünya:** Kümülatif satış, portföy değeri, eğri altı alan (AUC).