LeetCode 第 242 題:給定兩個字符串 s 和 t,編寫一個函數來判斷 t 是否是 s 的字母異位詞


 

示例 1

輸入: s = "anagram", t = "nagaram"

輸出: true

示例 2

輸入: s = "rat", t = "car"

輸出: false

 

一個重要的前提“假設兩個字符串只包含小寫字母”,小寫字母一共也就 26 個,因此:

  • 可以利用兩個長度都為 26 的字符數組來統計每個字符串中小寫字母出現的次數,然后再對比是否相等;
  • 可以只利用一個長度為 26 的字符數組,將出現在字符串 s 里的字符個數加 1,而出現在字符串 t 里的字符個數減 1,最后判斷每個小寫字母的個數是否都為 0按上述操作,可得出結論:s 和 t 互為字母異位詞。
  • 或 建立兩個字典key為字符,value為字符出現次數,最后判斷兩個字符是否相等

 

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        dic1, dic2 = {}, {}
        for item in s:
            dic1[item] = dic1.get(item, 0) + 1
        for item in t:
            dic2[item] = dic2.get(item, 0) + 1
        return dic1 == dic2

        # return sorted(s) == sorted(t) 或


solution = Solution()
print(solution.isAnagram(s="anagram", t="nagaram"))  # True

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):第389題:找不同:給定兩個字符串 s 和 t,它們只包含小寫字母。 字符串 t 由字符串 s 隨機重排,然后在隨機位置添加一個字母。 請找出在 t 中被添加的字母。 Leetcode練習(Python):哈希表類:第49題:字母異位詞分組:給定一個字符串數組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。 給定兩個字符串 s 和 t,它們只包含小寫字母。 字符串 t 由字符串 s 隨機重排,然后在隨機位置添加一個字母。 請找出在 t 中被添加的字母。 Leetcode練習(Python):第392題:判斷子序列:給定字符串 s 和 t ,判斷 s 是否為 t 的子序列。 判斷兩個字符串是否是變位詞 編寫一個程序,將兩個字符串s1和s2比較,如果s1 > s2,輸出一個整數;若s1 = s2,輸出0;若s1 < s2,輸出一個負數。不要用strcpy函數。兩個字符串用gets函數讀入。輸出的正數或負數的絕對值應是相比較的兩個字符串相對應字符的ASCII碼的差值。 編寫一個程序,將連個字符串s1和s2比較,如果s1 > s2,輸出一個整數;若s1 = s2,輸出0;若s1 < s2,輸出一個負數。不要用strcpy函數。兩個字符串用gets函數讀入。輸出的正數或負數的絕對值應是相比較的兩個字符串相對應字符的ASCII碼的差值。例如,"A"和“C”相比,由於"A" < "C",應輸出負數,同時由於‘A’與‘C’的ASCII碼差值為2,因此應輸出"-2" oracle函數判斷兩個字符串是否有交集 編寫一個函數,實現兩個字符串的連接功能 Js截取字符串函數 和 JS判斷輸入字符串長度(漢字算兩個字符,字母數字算一個)
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM