Skip to content

Commit d10eddd

Browse files
committed
Valid Anagram Solution
1 parent 2fe91c1 commit d10eddd

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

valid-anagram/naringst.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* @param {string} s
3+
* @param {string} t
4+
* @return {boolean}
5+
*/
6+
7+
/**
8+
* Runtime: 68ms, Memory: 54.49MB
9+
* n = s.length > t.length ? s.length : t.length
10+
* Time complexity: O(n)
11+
* Space complexity: O(n)
12+
*
13+
* **/
14+
15+
function arrayToDict(arr) {
16+
const dict = {};
17+
for (let element of arr) {
18+
if (dict[element]) {
19+
dict[element] += 1;
20+
} else {
21+
dict[element] = 1;
22+
}
23+
}
24+
return dict;
25+
}
26+
27+
function isSameDict(dict1, dict2) {
28+
if (Object.keys(dict1).length !== Object.keys(dict2).length) {
29+
return false;
30+
}
31+
32+
for (const elem in dict1) {
33+
if (dict1[elem] !== dict2[elem]) {
34+
return false;
35+
}
36+
}
37+
return true;
38+
}
39+
40+
var isAnagram = function (s, t) {
41+
const sArr = [...s];
42+
const tArr = [...t];
43+
44+
const sDict = arrayToDict(sArr);
45+
const tDict = arrayToDict(tArr);
46+
47+
return isSameDict(sDict, tDict);
48+
};

0 commit comments

Comments
 (0)