Good afternoon! Here's our prompt for today.
Understanding Anagrams: A Simple Definition
An anagram is a fascinating literary device where you can rearrange the letters of a word, phrase, or name to form another meaningful sequence. Think of it as a jigsaw puzzle made of letters. For example, the word "cinema" can be rearranged to form "iceman."
The Challenge: Detecting Anagrams
Problem Statement
Given two input strings like "cinema" and "iceman," your task is to implement a method called isAnagram(str1, str2)
. This method should return true
if the given strings are anagrams of each other and false
otherwise.
Constraints to Consider
Computational Limits
The length of both input strings will be less than or equal to 100,000.
Character Rules
The input strings will only contain alphanumeric characters (
a-z, A-Z, 0-9
).
Performance Expectations
- The expected time complexity for this operation is
O(nlogn)
. - The expected space complexity is
O(n)
.
Empty Strings are Valid
- The input strings can be empty. Imagine that as a puzzle with no pieces; it's trivially solvable!
Coding the Solution
Given the constraints and expectations, you'll need to think carefully about your algorithm. The aim is not just to solve the problem, but to solve it efficiently within the given computational and space boundaries.
Try to solve this here or in Interactive Mode.
How do I practice this challenge?
xxxxxxxxxx
var assert = require('assert');
​
function isAnagram(str1, str2) {
// fill this in
return true;
}
​
try {
assert.equal(isAnagram('Mary', 'Army'), true);
​
console.log('PASSED: ' + "`isAnagram('Mary', 'Army')` should return true");
} catch (err) {
console.log(err);
}
​
try {
assert.equal(isAnagram('cinema', 'iceman'), true);
​
console.log(
'PASSED: ' + "`isAnagram('cinema', 'iceman')` should return true"
);
} catch (err) {
console.log(err);
}
​
try {
assert.equal(isAnagram('jake', 'jay'), false);
​
console.log('PASSED: ' + "`isAnagram('jake', 'jay')` should return false");
Tired of reading? Watch this video explanation!
To change the speed of the video or see it in full screen, click the icons to the right of the progress bar.

We'll now take you through what you need to know.
How do I use this guide?