Easy
Dec 22, 2025#hashmap
#frequency
242. Valid Anagram
Given two strings s and t, return true if t is an anagram of s, and false otherwise.
Example 1:
Input: s = "anagram", t = "nagaram"
Output: true
Example 2:
Input: s = "rat", t = "car"
Output: false
Constraints:
- 1 <= s.length, t.length <= 5 * 104
- s and t consist of lowercase English letters.
Follow up: What if the inputs contain Unicode characters? How would you adapt your solution to such a case?
Notes
- Intuition: An anagram means the strings have the same frequency of letters, i.e. abc is anagram of bac or cab, etc.
- Implementation: Since only lowercase alphabet, increment in 26 value array at each character index (i.e. a = index 0, b = index 1, etc.) for s and decrement for t, if frequency array is zero, return True, otherwise False
- Complexity: Time O(n), Space O(1) (freq is 26 values, const.)