Leetcode Python - 242. Valid Anagram

Leetcode #242 - Valid Anagram

이제 blind 75 leetcode를 풀어보겠습니다. https://leetcode.com/discuss/interview-question/460599/Blind-75-LeetCode-Questions

리트코드의 문제 242 ‘Valid Anagram’을 파이썬으로 풀어 보도록 하겠습니다.

discuss 참고, 포인트는 dictionary에 s의 char를 넣고, t의 char를 돌면서 value를 빼주면 일치할 경우 모든 value의 값이 0이 되어야 합니다.

전체 코드는 아래와 같습니다.

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s) != len(t):
            return False
        
        seen = {}
        for c in s:
            if c in seen:
                seen[c] += 1
            else:
                seen[c] = 1

        for c in t:
            if c in seen:
                seen[c] -= 1    
            else:
                return False
        
        for v in seen.values():
            if v != 0:
                return False
        return True

시간복잡도는

  • O(n+m) : O(n(s의 길이)) + O(m(t의 길이))

공간복잡도는

  • O(n) : s와 t 중 큰 값만큼의 dictionary