Skip to content

Commit 5c540e6

Browse files
authored
Merge pull request #729 from amanr3085/patch-1
Create Leetcode Problem 49. Group Anagrams.java
2 parents 1d09146 + bca8fd1 commit 5c540e6

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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+
}

0 commit comments

Comments
 (0)