Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit18032d4

Browse files
committed
feat: add 049
1 parent8460596 commit18032d4

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

‎README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
|19|[Remove Nth Node From End of List][019]|Linked List, Two Pointers|
6666
|33|[Search in Rotated Sorted Array][033]|Arrays, Binary Search|
6767
|43|[Multiply Strings][043]|Math, String|
68+
|49|[Group Anagrams][049]|Hash Table, String|
6869
|554|[Brick Wall][554]|Hash Table|
6970

7071

@@ -127,6 +128,7 @@
127128
[019]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/019/README.md
128129
[033]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/033/README.md
129130
[043]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/043/README.md
131+
[049]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/049/README.md
130132
[554]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/554/README.md
131133

132134
[004]:https://github.com/Blankj/awesome-java-leetcode/blob/master/note/004/README.md

‎note/049/README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#[Group Anagrams][title]
2+
3+
##Description
4+
5+
Given an array of strings, group anagrams together.
6+
7+
For example, given:`["eat", "tea", "tan", "ate", "nat", "bat"]`,
8+
Return:
9+
10+
```
11+
[
12+
["ate", "eat","tea"],
13+
["nat","tan"],
14+
["bat"]
15+
]
16+
```
17+
18+
**Note:** All inputs will be in lower-case.
19+
20+
**Tags:** Hash Table, String
21+
22+
23+
##思路0
24+
25+
题意是给你一组字符串,让你把其中同位异构字符串分组,同位异构字符串就是组成字符串的字符都相同,但是字符放的位置可以不同。既然要分组,那么关键就是如何确定他们是同位异构字符串呢,想到的自然就是对其排序,排序之后他们就都是同一个字符串了,就可以归为一类了,代码如下所示。
26+
27+
```java
28+
classSolution {
29+
publicList<List<String>>groupAnagrams(String[]strs) {
30+
if (strs==null|| strs.length==0)returnCollections.emptyList();
31+
List<List<String>> list=newArrayList<>();
32+
Map<String,Integer> hash=newHashMap<>();
33+
int i=0;
34+
for (String str: strs) {
35+
char[] c= str.toCharArray();
36+
Arrays.sort(c);
37+
String sortStr=String.valueOf(c);
38+
if (!hash.containsKey(sortStr)) {
39+
hash.put(sortStr, i++);
40+
List<String> sub=newArrayList<>();
41+
sub.add(str);
42+
list.add(sub);
43+
}else {
44+
list.get(hash.get(sortStr)).add(str);
45+
}
46+
}
47+
return list;
48+
}
49+
}
50+
```
51+
52+
53+
##结语
54+
55+
如果你同我一样热爱数据结构、算法、LeetCode,可以关注我GitHub上的LeetCode题解:[awesome-java-leetcode][ajl]
56+
57+
58+
59+
[title]:https://leetcode.com/problems/group-anagrams
60+
[ajl]:https://github.com/Blankj/awesome-java-leetcode
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
packagecom.blankj.medium._049;
2+
3+
importjava.util.ArrayList;
4+
importjava.util.Arrays;
5+
importjava.util.Collections;
6+
importjava.util.HashMap;
7+
importjava.util.List;
8+
importjava.util.Map;
9+
10+
/**
11+
* <pre>
12+
* author: Blankj
13+
* blog : http://blankj.com
14+
* time : 2017/10/18
15+
* desc :
16+
* </pre>
17+
*/
18+
publicclassSolution {
19+
publicList<List<String>>groupAnagrams(String[]strs) {
20+
if (strs ==null ||strs.length ==0)returnCollections.emptyList();
21+
List<List<String>>list =newArrayList<>();
22+
Map<String,Integer>hash =newHashMap<>();
23+
inti =0;
24+
for (Stringstr :strs) {
25+
char[]c =str.toCharArray();
26+
Arrays.sort(c);
27+
StringsortStr =String.valueOf(c);
28+
if (!hash.containsKey(sortStr)) {
29+
hash.put(sortStr,i++);
30+
List<String>sub =newArrayList<>();
31+
sub.add(str);
32+
list.add(sub);
33+
}else {
34+
list.get(hash.get(sortStr)).add(str);
35+
}
36+
}
37+
returnlist;
38+
}
39+
40+
publicstaticvoidmain(String[]args) {
41+
Solutionsolution =newSolution();
42+
System.out.println(solution.groupAnagrams(newString[]{"eat","tea","tan","ate","nat","bat"}));
43+
}
44+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp