Python 字謎檢查器
透過比較 Python 中的字元組成來檢查兩個字串是否是字謎。
概述
如果兩個字串以相同的頻率包含相同的字符,但排列順序不同(例如“listen”和“silent”),則它們是字謎詞。
檢查字謎的一種優雅方法是清理字串(去除空格和小寫字母),對它們的字元進行排序,並驗證排序後的清單是否相同。
這種排序方法的執行時間為 O(k log k),其中 k 是字串長度,這對於短文字檢查來說是最佳的。
程式碼和執行輸出
透過字母排序檢查單字配對的字謎狀態。
anagram.py
在編輯器中嘗試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? False逐步實施
- 文字分析與語言比較引擎
- 字串謎題設計與驗證器系統
- 技術面試編碼任務
常見問題解答
有沒有辦法在 O(n) 線性時間內解決這個問題?
是的!您可以使用雜湊圖或 Python 的「collections.Counter」來計算字母頻率,而不是排序,並比較結果頻率圖。