Skip to content

Commit c6d5b71

Browse files
Jaehyeon Robert HanJaehyeon Robert Han
authored andcommitted
new solution
1 parent a1ac4ea commit c6d5b71

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

valid-anagram/Zioq.js

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,36 @@ var isAnagram = function(s, t) {
77
if( s.length !== t.length ) {return false}
88

99
// Change string to arr
10-
let s_arr = s.split('');
11-
let t_arr = t.split('');
10+
// let s_arr = s.split('');
11+
// let t_arr = t.split('');
12+
/* WHAT IF SORT IS NOT ALLOWED */
13+
// let s_arr_sort = s_arr.sort();
14+
// let t_arr_sort = t_arr.sort();
15+
// return JSON.stringify(s_arr_sort) === JSON.stringify(t_arr_sort); // Comparison array
1216

13-
let s_arr_sort = s_arr.sort();
14-
let t_arr_sort = t_arr.sort();
1517

16-
return JSON.stringify(s_arr_sort) === JSON.stringify(t_arr_sort); // Comparison array
18+
// Use map to count characters in the s
19+
// And remove character with t from map
20+
21+
const map = new Map();
22+
23+
for (let c of s) {
24+
map[c] = (map[c] || 0) + 1;
25+
}
26+
27+
for (let c of t) {
28+
if (!map[c]) return false;
29+
map[c]--;
30+
}
31+
32+
return true;
1733
};
1834
/*
19-
Time Complexity: O(n log n) (dominated by sorting).
20-
Space Complexity: O(n) (dominated by the arrays and string representations).
21-
35+
Time Complexity: O(n)
36+
Space Complexity: O(n)
2237
*/
2338

2439

25-
// console.log(isAnagram("anagram","nagaram"));
26-
// console.log(isAnagram("rat","car"));
40+
console.log(isAnagram("anagram","nagaram"));
41+
console.log(isAnagram("rat","car"));
2742

0 commit comments

Comments
 (0)