📌

よわよわエンジニアが解く242. Valid Anagram

2024/03/17に公開

以下のようにすると、文字列1回ずつの走破でアルファベットと文字数のマップが作成できる。

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

        s_map = {}
        t_map = {}

        for c in s:
            if c in s_map:
                s_map[c] += 1
            else:
                s_map[c] = 1
    
        for c in t:
            if c in t_map:
                t_map[c] += 1
            else:
                t_map[c] = 1

        return s_map == t_map

これでも意味は一緒。

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

        s_map = {}
        t_map = {}

        for i in range(len(s)):
            s_map[s[i]] = 1 + s_map.get(s[i], 0)
            t_map[t[i]] = 1 + t_map.get(t[i], 0)

        return s_map == t_map

Discussion