File tree 1 file changed +34
-0
lines changed
1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public List <List <String >> groupAnagrams (String [] strs ) {
3
+ return sol2 (strs );
4
+ }
5
+ public static List <List <String >> sol2 (String [] str ){
6
+ Map <String ,List <String >> map = new HashMap <>();
7
+ for (String st : str ) {
8
+ char [] stArr = st .toCharArray ();
9
+ int freq [] = new int [26 ];
10
+ for (int i = 0 ; i < stArr .length ; i ++) {
11
+ int index = stArr [i ]-'a' ;
12
+ freq [index ]++;
13
+ }
14
+
15
+ //use Arrays.toString
16
+ // String stFreq = Arrays.toString(freq);
17
+
18
+ //without using Arrays.toString
19
+ StringBuilder sb = new StringBuilder () ;
20
+ for (int i = 0 ; i < 26 ; i ++) {
21
+ sb .append (freq [i ]);
22
+ sb .append ('|' );
23
+ }
24
+ String stFreq = sb .toString ();
25
+
26
+ List <String > valueList = map .getOrDefault (stFreq , new LinkedList <>());
27
+ valueList .add (st );
28
+ map .put (stFreq , valueList );
29
+ }
30
+ List <List <String >> ans = new LinkedList <>();
31
+ ans .addAll (map .values ());
32
+ return ans ;
33
+ }
34
+ }
You can’t perform that action at this time.
0 commit comments