# LeetCode 242: Valid Anagram — Step-by-Step Visual Trace

**Easy** — Hash Table | String | Sorting

## The Problem

Determine if two strings are anagrams of each other, meaning they contain the exact same characters with the same frequencies but possibly in different orders.

## Approach

Use a hash map to count character frequencies in the first string, then iterate through the second string decrementing counts. If any character is missing or count goes below zero, the strings aren't anagrams.

**Time:** O(n) · **Space:** O(n)

## Code

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

        char_frequency = {}

        # Build character frequency map for string s
        for char in s:
            char_frequency[char] = char_frequency.get(char, 0) + 1

        # Compare with string t
        for char in t:
            if char not in char_frequency or char_frequency[char] == 0:
                return False
            char_frequency[char] -= 1

        return True
```

## Watch It Run

> **[Open interactive visualization](https://tracelit.dev/app?trace=0242_valid-anagram)**

> **Try it yourself:** Open [TraceLit](https://tracelit.dev/app?trace=0242_valid-anagram) and step through every line.

---

*Built with [TraceLit](https://tracelit.dev) — the visual algorithm tracer for LeetCode practice.*
