İçeriğe atla
CodeItRaw
Metin

Ders 3/3

İki metnin aynı harflerden oluşup oluşmadığı (anagram) sorusu, sıranın değil sayıların sorusudur. Her harften kaç tane olduğunu bir sözlükte tutarsın; iki metnin sözlükleri eşitse biri diğerinin yeniden dizilmiş hâlidir.

def letters(text):
count = {}
for ch in text:
count[ch] = count.get(ch, 0) + 1
return count
same = letters(first) == letters(second)
Hash konusundaki sayma kalıbının aynısı. İki sözlük == ile karşılaştırılabilir: aynı anahtarlar aynı değerlerle duruyorsa eşittirler, eklenme sırası önemli değildir.

Başka bir yol, iki metni sıralayıp karşılaştırmaktır: sorted(first) == sorted(second). Kısadır ama sıralamanın bedelini öder (n log n); saymak tek geçiştir (n). Düelloda ölçülen fark budur.

Görevler

Görevler sırayla açılır. Hepsini çözünce sonraki ders açılır.

Bu dersin görevleri, önceki dersler bitince açılır. Anlatımı şimdiden okuyabilirsin.

  1. 01

    Anagram mı?

    Kod Okuma · Hatayı Bul

  2. 02

    Anagram Yarılar

    Fonksiyon

  3. 03

    Tekrar Eden Harf

    Kod Okuma · Big-O Oku

Sırayı beklemeden çözmek istersen bütün problemler kilitsiz açık: Problemler listesi