示例 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