Python 字謎檢查器

透過比較 Python 中的字元組成來檢查兩個字串是否是字謎。

在編輯器中嘗試

概述

如果兩個字串以相同的頻率包含相同的字符,但排列順序不同(例如“listen”和“silent”),則它們是字謎詞。

檢查字謎的一種優雅方法是清理字串(去除空格和小寫字母),對它們的字元進行排序,並驗證排序後的清單是否相同。

這種排序方法的執行時間為 O(k log k),其中 k 是字串長度,這對於短文字檢查來說是最佳的。

程式碼和執行輸出

透過字母排序檢查單字配對的字謎狀態。

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」來計算字母頻率,而不是排序,並比較結果頻率圖。

相關主題