dict == compares contents, not insertion order
it doesn't return a length—it returns a boolean (True or False).
Here's what's happening:
countS and countT are dictionaries:
countS = {'r': 2, 'a': 2, 'c': 2, 'e': 1} # from "racecar"
countT = {'c': 2, 'a': 2, 'r': 2, 'e': 1} # from "carrace"
When you compare two dictionaries with ==:
countS == countT # Returns True
Python checks if both dictionaries have:
- The same keys (characters)
- The same values (frequencies)
The order doesn't matter—{'r': 2, 'a': 2} equals {'a': 2, 'r': 2} ✓
Example with non-anagrams:
# s = "jar", t = "jam"
countS = {'j': 1, 'a': 1, 'r': 1}
countT = {'j': 1, 'a': 1, 'm': 1}
countS == countT # Returns False (different keys: 'r' vs 'm')