Skip to content

242. Valid Anagram

Solutions

Language Approach Time Space File
python Map O(n + m) O(n) python/map_solution.py

Map — python

Time: O(n + m)
Space: O(n)

python/map_solution.py
# Time: O(n + m)
# Space: O(n)

from collections import Counter

from task import Task


class MapSolution(Task):
    def isAnagram(self, s: str, t: str) -> bool:
        counts = Counter(s)
        for ch in t:
            if ch in counts:
                counts[ch] -= 1
                if counts[ch] == 0:
                    counts.pop(ch)
            else:
                return False
        return len(counts) == 0

Traces

Map

Map trace

Step 1
s: anagram
t: nagaram
 ^
m: a=3 n=1 g=1 r=1 m=1
Step 2
s: anagram
t: nagaram
   ^
m: a=3 n=0 g=1 r=1 m=1
Step 3
s: anagram
t: nagaram
    ^
m: a=2 g=1 r=1 m=1
Step 4
s: anagram
t: nagaram
     ^
m: a=2 g=0 r=1 m=1
Step 5
s: anagram
t: nagaram
      ^
m: a=1 r=1 m=1
Step 6
s: anagram
t: nagaram
       ^
m: a=1 r=0 m=1
Step 7
s: anagram
t: nagaram
        ^
m: a=0 m=1
Step 8
s: anagram
t: nagaram
         ^
m: m=0
Step 9
s: anagram
t: nagaram
          ^
m: []
output: true