Valid Anagram

EasyArrays & HashingFree to try
Asked byFacebookBloombergAmazonSpotifyMicrosoftGoldman Sachs

Problem

Given two strings s and t, determine if t is an anagram of s — that is, whether t can be formed by rearranging every character of s exactly once, using each character the same number of times.

Examples

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 * 10^4
  • s and t consist of lowercase English letters.

Try it now — no sign-up needed. Write your solution in Python or JavaScript, run it against test cases, and submit for a verdict, right in your browser.

Open the editor →

How to approach it: the Arrays & Hashing pattern

Arrays give O(1) index access; hash maps and sets give O(1) average lookup, insert, and delete by trading space for speed. Together they're the toolkit for turning brute-force O(n²) comparisons into a single O(n) pass.

Look for this pattern when

  • You need to check "have I seen this value before?" quickly.
  • You're counting occurrences or grouping items by a derived key (e.g. sorted letters for anagrams).
  • A nested loop is comparing every pair — a hash map can often replace the inner loop.

Read the full Arrays & Hashing guide →

Video walkthroughs

Original problem on LeetCode ↗

More Arrays & Hashing problems