@@ -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