Python Anagram Denetleyicisi

Python'daki karakter bileşimlerini karşılaştırarak iki dizenin anagram olup olmadığını kontrol edin.

Editör'de deneyin

Genel Bakış

İki dize, farklı bir sırada düzenlenmiş olsalar da aynı frekanslarda aynı karakterleri içeriyorsa anagramdır (örneğin, "dinle" ve "sessiz").

Anagramları kontrol etmenin zarif bir yolu, dizeleri temizlemek (boşlukları ve küçük harfleri çıkarmak), karakterlerini sıralamak ve sıralanan listelerin aynı olup olmadığını doğrulamaktır.

Bu sıralama yaklaşımı, kısa metin kontrolleri için en uygun olan, k'nin dize uzunluğu olduğu O(k log k) zamanında yürütülür.

Kod ve Yürütme Çıkışı

Harf sıralamasıyla anagram durumu için kelime eşleştirmeleri kontrol ediliyor.

def is_anagram(str1, str2):
    s1 = sorted(str1.lower().replace(" ", ""))
    s2 = sorted(str2.lower().replace(" ", ""))
    return s1 == s2

word1, word2 = "listen", "silent"
print(f"Are '{word1}' and '{word2}' anagrams? {is_anagram(word1, word2)}")

word3, word4 = "hello", "world"
print(f"Are '{word3}' and '{word4}' anagrams? {is_anagram(word3, word4)}")
Terminal Çıkışı
Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? False

Adım Adım Uygulama

  • Metin analizi ve dilsel karşılaştırma motorları
  • String bulmaca tasarımı ve doğrulama sistemleri
  • Teknik görüşme kodlama görevleri

Sıkça Sorulan Sorular

Bunu O(n) doğrusal zamanda çözmenin bir yolu var mı?

Evet! Sıralamak yerine, karma haritayı veya Python'un `collections.Counter'ını kullanarak harf sıklıklarını sayabilir ve ortaya çıkan sıklık haritalarını karşılaştırabilirsiniz.

İlgili Konular