mirror of
https://github.com/prdlk/leetcode.git
synced 2026-09-17 07:26:27 +00:00
51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
---
|
|||
|
|
title: '49. Group Anagrams'
|
||
|
|
description: Given an array of strings strs, group the anagrams together. You can return the answer in any order
|
||
|
|
sidebar:
|
||
|
|
badge: 'Medium'
|
||
|
|
---
|
||
|
|
|
||
|
|
<Badge variant="accent">Hash Table</Badge>
|
||
|
|
|
||
|
|
### 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"]]`
|
||
|
|
|
||
|
|
### Constraints:
|
||
|
|
|
||
|
|
- `1 <= strs.length <= 10^4`
|
||
|
|
- `0 <= strs[i].length <= 100`
|
||
|
|
- `strs[i]` consists of lowercase English letters.
|
||
|
|
|
||
|
|
## Solution
|
||
|
|
|
||
|
|
```js
|
||
|
|
/**
|
||
|
|
* @param {string[]} strs
|
||
|
|
* @return {string[][]}
|
||
|
|
*/
|
||
|
|
var groupAnagrams = function(strs) {
|
||
|
|
let sorted = strs.map(str => str.split("").sort().join(""));
|
||
|
|
let anagrams = {};
|
||
|
|
|
||
|
|
for (let i = 0; i < strs.length; i++){
|
||
|
|
if(!anagrams[sorted[i]]){
|
||
|
|
anagrams[sorted[i]] = [strs[i]]
|
||
|
|
}else{
|
||
|
|
anagrams[sorted[i]].push(strs[i])
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return Object.values(anagrams);
|
||
|
|
};
|
||
|
|
```
|