Skip to content

Commit 52ee8c7

Browse files
solve task 49 group anagrams
1 parent bf60a2f commit 52ee8c7

3 files changed

Lines changed: 52 additions & 0 deletions

File tree

PROGRESS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
| leetcode | easy | 0228. summary ranges | Java | [Solution.java](leetcode/java/easy/0228-summary-ranges/Solution.java) | [notes.md](leetcode/java/easy/0228-summary-ranges/notes.md) |
88
| leetcode | easy | 0283. move zeroes | Java | [Solution.java](leetcode/java/easy/0283-move-zeroes/Solution.java) | [notes.md](leetcode/java/easy/0283-move-zeroes/notes.md) |
99
| leetcode | easy | 1446. consecutive characters | Java | [Solution.java](leetcode/java/easy/1446-consecutive-characters/Solution.java) | [notes.md](leetcode/java/easy/1446-consecutive-characters/notes.md) |
10+
| leetcode | medium | 0049. group anagrams | Java | [Solution.java](leetcode/java/medium/0049-group-anagrams/Solution.java) | [notes.md](leetcode/java/medium/0049-group-anagrams/notes.md) |
1011
| leetcode | medium | 0443. string compression | Java | [Solution.java](leetcode/java/medium/0443-string-compression/Solution.java) | [notes.md](leetcode/java/medium/0443-string-compression/notes.md) |
1112
| leetcode | medium | 0560. subarray sum equals k | Java | [Solution.java](leetcode/java/medium/0560-subarray-sum-equals-k/Solution.java) | [notes.md](leetcode/java/medium/0560-subarray-sum-equals-k/notes.md) |
1213
| leetcode | medium | 1493. longest subarray of 1s after deleting one element | Java | [Solution.java](leetcode/java/medium/1493-longest-subarray-of-1s-after-deleting-one-element/Solution.java) | [notes.md](leetcode/java/medium/1493-longest-subarray-of-1s-after-deleting-one-element/notes.md) |
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
public static String sortString(String str){
3+
char[] temp = str.toCharArray();
4+
Arrays.sort(temp);
5+
return new String(temp);
6+
}
7+
public List<List<String>> groupAnagrams(String[] strs) {
8+
Map<String, ArrayList<String>> anag = new HashMap<>();
9+
for(int i = 0; i < strs.length; i++){
10+
String sorted = sortString(strs[i]);
11+
if(!anag.containsKey(sorted)){
12+
anag.put(sorted, new ArrayList<String>());
13+
}
14+
anag.get(sorted).add(strs[i]);
15+
}
16+
List<List<String>> ans = new ArrayList<>();
17+
for(String c : anag.keySet()){
18+
ans.add(anag.get(c));
19+
}
20+
return ans;
21+
}
22+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# 443. String Compression
2+
3+
## link
4+
LeetCode: https://leetcode.com/problems/string-compression/
5+
6+
## Pattern
7+
- String
8+
- Sort
9+
- HashMap
10+
11+
## Idea
12+
### Rus
13+
По условию надо сгруппировать анаграмы строк.
14+
Сделаем отдельный метод для сортировки строки, в котором преобразуем ее в массив и сортируем.
15+
Далее сделаем хешмапу в которой ключом будет сортированная строка. А значением массив строк.
16+
Так вот идем по строкам. Сначала ее сортируем и ищем. Есть ли такой ключ в хешмапе. Если нет, то создаем массив. Дальше просто кладем текущую строку по этому ключу.
17+
В конце проходимся по хешмапе и перекладываем все массивы в переменную с ответом.
18+
### Eng
19+
By condition, it is necessary to group the anagrams of the strings.
20+
Let's make a separate method for sorting a string, in which we convert it into an array and sort it.
21+
Next, we will make a hashmap in which the key will be a sorted string. And the value is an array of strings.
22+
So here we go along the lines. First, we sort it and search for it. Is there such a key in the hashmap? If not, then create an array. Then we just put the current line on this key.
23+
At the end, we go through the hashmap and transfer all the arrays to the response variable.
24+
25+
## Complexity
26+
- Time: O(n)
27+
- Space: O(n*s*log(s))
28+
29+
## Problems

0 commit comments

Comments
 (0)