-
Code const isAnagram = (s1, s2) => s1.length === s2.length && Object.values([s1].reduce((o, k, i) => (k in o ? ++o[k] : o[k] = 1, s2[i] in o ? --o[s2[i]] : o[s2[i]] = -1, o), {})).every(v => !v);
Test Cases const chai = require("chai"); const assert = chai.assert; const Test = require("@codewars/test-compat"); describe('isAnagram', () => { it('should return true for anagrams', () => { assert.strictEqual(isAnagram('listen', 'silent'), true); assert.strictEqual(isAnagram('race', 'care'), true); }); it('should return false for non-anagrams', () => { assert.strictEqual(isAnagram('night', 'things'), false); assert.strictEqual(isAnagram('hello', 'world'), false); }); it('should return false if input strings have different lengths', () => { assert.strictEqual(isAnagram('abc', 'abcd'), false); assert.strictEqual(isAnagram('abcd', 'abc'), false); assert.strictEqual(isAnagram('anagram', 'nag a ram'), false); }); });
Output:
-
Code function isAnagram(str1, str2) {if (str1.length !== str2.length) {return false;}const frequency = {};for (let i = 0; i < str1.length; i++) {const char = str1[i];if (frequency[char]) {frequency[char]++;} else {frequency[char] = 1;}}for (let i = 0; i < str2.length; i++) {const char = str2[i];if (!frequency[char]) {return false;} else {frequency[char]--;}}return true;}- const isAnagram = (s1, s2) => s1.length === s2.length && Object.values([...s1].reduce((o, k, i) => (k in o ? ++o[k] : o[k] = 1, s2[i] in o ? --o[s2[i]] : o[s2[i]] = -1, o), {})).every(v => !v);
- All
- {{group.name}} ({{group.count}})
This comment has been reported as {{ abuseKindText }}.
Show
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report
{{ fetchSolutionsError }}