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

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true
示例 2:

输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。

进阶:
如果输入字符串包含 unicode 字符怎么办？你能否调整你的解法来应对这种情况？

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
'''

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        from collections import defaultdict
        d = defaultdict(int)
        for char in s:
            d[char] += 1
        for char in t:
            d[char] -= 1
            if d[char] < 0:
                return False
        return sum([a!=0 for a in d.values()])==0


class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s)!=len(t):return False
        s = list(s)
        t = list(t)
        s.sort()
        t.sort()
        return s==t
c40a9744603c9b0475cf7ecf13b1076083b66bf1
<mask token>


class Solution:
    <mask token>

<mask token>


class Solution:

    def isAnagram(self, s: str, t: str) ->bool:
        if len(s) != len(t):
            return False
        s = list(s)
        t = list(t)
        s.sort()
        t.sort()
        return s == t

<mask token>


class Solution:
    <mask token>


class Solution:

    def isAnagram(self, s: str, t: str) ->bool:
        if len(s) != len(t):
            return False
        s = list(s)
        t = list(t)
        s.sort()
        t.sort()
        return s == t

<mask token>


class Solution:

    def isAnagram(self, s: str, t: str) ->bool:
        from collections import defaultdict
        d = defaultdict(int)
        for char in s:
            d[char] += 1
        for char in t:
            d[char] -= 1
            if d[char] < 0:
                return False
        return sum([(a != 0) for a in d.values()]) == 0


class Solution:

    def isAnagram(self, s: str, t: str) ->bool:
        if len(s) != len(t):
            return False
        s = list(s)
        t = list(t)
        s.sort()
        t.sort()
        return s == t

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

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true
示例 2:

输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。

进阶:
如果输入字符串包含 unicode 字符怎么办？你能否调整你的解法来应对这种情况？

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
'''

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        from collections import defaultdict
        d = defaultdict(int)
        for char in s:
            d[char] += 1
        for char in t:
            d[char] -= 1
            if d[char] < 0:
                return False
        return sum([a!=0 for a in d.values()])==0


class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s)!=len(t):return False
        s = list(s)
        t = list(t)
        s.sort()
        t.sort()
        return s==t