-
Notifications
You must be signed in to change notification settings - Fork 0
/
groupAnagrams.js
40 lines (31 loc) · 958 Bytes
/
groupAnagrams.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
Given an array of strings strs, group the
anagrams together. You can return the answer in any order.
Example 1:
Input: strs = ["eat","tea","tan","ate","nat","bat"]
Output: [["bat"],["nat","tan"],["ate","eat","tea"]]
Explanation:
There is no string in strs that can be rearranged to form "bat".
The strings "nat" and "tan" are anagrams as they can be rearranged to form each other.
The strings "ate", "eat", and "tea" are anagrams as they can be rearranged to form each other.
Example 2:
Input: strs = [""]
Output: [[""]]
Example 3:
Input: strs = ["a"]
Output: [["a"]]
* @param {string[]} strs
* @return {string[][]}
*/
var groupAnagrams = function (strs) {
const sortStr = (str) => str.split("").sort().join("");
let hashMap = new Map();
for (const str of strs) {
let sortedStr = sortStr(str);
if (!hashMap[sortedStr]) {
hashMap[sortedStr] = [];
}
hashMap[sortedStr].push(str);
}
return Object.values(hashMap);
};