Q3: How do you verify if two Strings are Anagrams?

Two strings are anagrams if they contain the exact same character frequencies. Check if lengths are equal first. Count character occurrences using a fixed-size integer frequency array (int[26] for lowercase English letters) or a HashMap for general Unicode.

Frequency Array Anagram Solution
public class ValidAnagram {
    public static boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) return false;
        int[] counts = new int[26];
        for (int i = 0; i < s.length(); i++) {
            counts[s.charAt(i) - 'a']++;
            counts[t.charAt(i) - 'a']--;
        }
        for (int count : counts) {
            if (count != 0) return false;
        }
        return true;
    }
}
💡 Accumulates and decrements frequencies in a single pass over both strings.
Key Takeaways
  • Use int[26] array as a fast frequency map for ASCII alphabets.
  • Increment count for string 1, decrement for string 2; verify all entries equal 0.
Knowledge Check

What is the space complexity of checking anagrams of lower-case ASCII strings using a fixed int[26] array?