File tree 4 files changed +35
-38
lines changed
solution/0000-0099/0049.Group Anagrams
4 files changed +35
-38
lines changed Original file line number Diff line number Diff line change @@ -221,16 +221,15 @@ func groupAnagrams(strs []string) (ans [][]string) {
221
221
222
222
``` ts
223
223
function groupAnagrams(strs : string []): string [][] {
224
- let map = new Map ();
225
- for (let str of strs ) {
226
- let arr = str .split (' ' );
227
- arr .sort ();
228
- let key = arr .join (' ' );
229
- let value = map .get (key ) ? map .get (key ) : [];
230
- value .push (str );
231
- map .set (key , value );
224
+ const d: Map <string , string []> = new Map ();
225
+ for (const s of strs ) {
226
+ const k = s .split (' ' ).sort ().join (' ' );
227
+ if (! d .has (k )) {
228
+ d .set (k , []);
229
+ }
230
+ d .get (k )! .push (s );
232
231
}
233
- return Array .from (map .values ());
232
+ return Array .from (d .values ());
234
233
}
235
234
```
236
235
Original file line number Diff line number Diff line change @@ -178,16 +178,15 @@ func groupAnagrams(strs []string) (ans [][]string) {
178
178
179
179
``` ts
180
180
function groupAnagrams(strs : string []): string [][] {
181
- let map = new Map ();
182
- for (let str of strs ) {
183
- let arr = str .split (' ' );
184
- arr .sort ();
185
- let key = arr .join (' ' );
186
- let value = map .get (key ) ? map .get (key ) : [];
187
- value .push (str );
188
- map .set (key , value );
181
+ const d: Map <string , string []> = new Map ();
182
+ for (const s of strs ) {
183
+ const k = s .split (' ' ).sort ().join (' ' );
184
+ if (! d .has (k )) {
185
+ d .set (k , []);
186
+ }
187
+ d .get (k )! .push (s );
189
188
}
190
- return Array .from (map .values ());
189
+ return Array .from (d .values ());
191
190
}
192
191
```
193
192
Original file line number Diff line number Diff line change 1
- class Solution {
2
- public List <List <String >> groupAnagrams (String [] strs ) {
3
- Map <String , List <String >> d = new HashMap <>();
4
- for (String s : strs ) {
5
- char [] t = s .toCharArray ();
6
- Arrays .sort (t );
7
- String k = String .valueOf (t );
8
- d .computeIfAbsent (k , key -> new ArrayList <>()).add (s );
9
- }
10
- return new ArrayList <>(d .values ());
11
- }
1
+ class Solution {
2
+ public List <List <String >> groupAnagrams (String [] strs ) {
3
+ Map <String , List <String >> d = new HashMap <>();
4
+ for (String s : strs ) {
5
+ char [] t = s .toCharArray ();
6
+ Arrays .sort (t );
7
+ String k = String .valueOf (t );
8
+ d .computeIfAbsent (k , key -> new ArrayList <>()).add (s );
9
+ }
10
+ return new ArrayList <>(d .values ());
11
+ }
12
12
}
Original file line number Diff line number Diff line change 1
1
function groupAnagrams ( strs : string [ ] ) : string [ ] [ ] {
2
- let map = new Map ( ) ;
3
- for ( let str of strs ) {
4
- let arr = str . split ( '' ) ;
5
- arr . sort ( ) ;
6
- let key = arr . join ( '' ) ;
7
- let value = map . get ( key ) ? map . get ( key ) : [ ] ;
8
- value . push ( str ) ;
9
- map . set ( key , value ) ;
2
+ const d : Map < string , string [ ] > = new Map ( ) ;
3
+ for ( const s of strs ) {
4
+ const k = s . split ( '' ) . sort ( ) . join ( '' ) ;
5
+ if ( ! d . has ( k ) ) {
6
+ d . set ( k , [ ] ) ;
7
+ }
8
+ d . get ( k ) ! . push ( s ) ;
10
9
}
11
- return Array . from ( map . values ( ) ) ;
10
+ return Array . from ( d . values ( ) ) ;
12
11
}
You can’t perform that action at this time.
0 commit comments