leetcode 242.有效的字母异位词

97 阅读1分钟

242.有效的字母异位词

给定两个字符串 st ,编写一个函数来判断 t 是否是 s 的字母异位词。

假设字符串只包含小写字母。输入字符串可能包含 unicode 字符

输入: s = "anagram", t = "nagaram"  输出: true
输入: s = "rat", t = "car"          输出: false
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:  # 按字母排序,O(nlgn)
        return sorted(s) == sorted(t)

    def isAnagram2(self, s, t):  # 比较字母出现次数是否相等,hashmap
        dict1, dict2 = {}, {}
        for i in s:
            dict1[i] = dict1.get(i, 0) + 1
        for i in t:
            dict2[i] = dict2.get(i, 0) + 1
        return dict1 == dict2

    def isAnagram3(self, s, t):  # 数组,26个字母,ASCII码相减
        dict1, dict2 = [0] * 26, [0] * 26
        for item in s:
            dict1[ord(item) - ord('a')] += 1
        for item in t:
            dict2[ord(item) - ord('a')] += 1
        return dict1 == dict2

    def isAnagram4(self, s, t):  # 字符统计
        from collections import Counter
        return Counter(s).items() == Counter(t).items()