class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        s_chars = dict()
        t_chars = dict()
        for s_char in s:
            new_char_check = s_chars.get(s_char)
            if not new_char_check:
                s_chars[s_char] = 1
            else:
                s_chars[s_char] += 1
        for t_char in t:
            new_char_check = t_chars.get(t_char)
            if not new_char_check:
                t_chars[t_char] = 1
            else:
                t_chars[t_char] += 1
        return True if s_chars == t_chars else False


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

        countS, countT = {}, {}

        for i in range(len(s)):
            countS[s[i]] = 1 + countS.get(s[i], 0)
            countT[t[i]] = 1 + countT.get(t[i], 0)
        return countS == countT


entry_1 = {"s": "racecar", "t": "carrace", "expected": True}
entry_2 = {"s": "jar", "t": "jam", "expected": False}
# entry_3 = {"s": "racecar", "t": "carrace", "expected": True}
# entry_4 = {"s": "racecar", "t": "carrace", "expected": True}
# entry_5 = {"s": "racecar", "t": "carrace", "expected": True}

s = Solution()
print(s.isAnagram(entry_1["s"], entry_1["t"]))
print(s.isAnagram(entry_2["s"], entry_2["t"]))
