Python Anagram Denetleyicisi
Python'daki karakter bileşimlerini karşılaştırarak iki dizenin anagram olup olmadığını kontrol edin.
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)}")Are 'listen' and 'silent' anagrams? True
Are 'hello' and 'world' anagrams? FalseAdı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.