mirror of
https://github.com/prdlk/leetcode.git
synced 2026-09-16 23:16:26 +00:00
feat(work): add solutions for LeetCode problems 217, 242, 189, and 49
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* 49. Group Anagrams
|
||||
* Difficulty: Medium
|
||||
* https://leetcode.com/problems/group-anagrams/
|
||||
*
|
||||
* ──────────────────────────────────────────────────
|
||||
*
|
||||
* 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"]]
|
||||
*
|
||||
*
|
||||
*
|
||||
* Constraints:
|
||||
*
|
||||
* • 1 <= strs.length <= 10^4
|
||||
*
|
||||
* • 0 <= strs[i].length <= 100
|
||||
*
|
||||
* • strs[i] consists of lowercase English letters.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @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);
|
||||
};
|
||||
Reference in New Issue
Block a user