304 North Cardinal St.
Dorchester Center, MA 02124

# Group Anagrams LeetCode Solution

## Problem – Group Anagrams LeetCode Solution

Given an array of strings `strs`, group the anagrams together. You can return the answer in any order.

An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

Example 1:

``````Input: strs = ["eat","tea","tan","ate","nat","bat"]
Output: [["bat"],["nat","tan"],["ate","eat","tea"]]
``````

Example 2:

``````Input: strs = [""]
Output: [[""]]
``````

Example 3:

``````Input: strs = ["a"]
Output: [["a"]]
``````

Constraints:

• `1 <= strs.length <= 104`
• `0 <= strs[i].length <= 100`
• `strs[i]` consists of lowercase English letters.

### Group Anagrams LeetCode Solution in Python

``````def groupAnagrams(self, strs):
d = {}
for w in sorted(strs):
key = tuple(sorted(w))
d[key] = d.get(key, []) + [w]
return d.values()
``````

### Group Anagrams LeetCode Solution in Java

``````    private static final int[] PRIMES = new int[]{2, 3, 5, 7, 11 ,13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 107};

public List<String> anagrams(String[] strs) {
List<String> list = new LinkedList<>();
Map<Integer, List<String>> mapString = new HashMap<>();
int result = -1;
for (int i = 0; i < strs.length; i++){
int mapping = 1;
for (int j = 0, max = strs[i].length(); j < max; j++) {
mapping *= PRIMES[strs[i].charAt(j) - 'a'];
}
List<String> strings = mapString.get(mapping);
if (strings == null) {
strings = new LinkedList<>();
mapString.put(mapping, strings);
}
}
for (List<String> mapList : mapString.values()){
if (mapList.size() > 1)
}
return list;
}
``````

### Group Anagrams LeetCode Solution in C++

``````class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
// Base case
if(strs.size() == 1)
return {{strs}};

vector<vector<string>> ans;
unordered_map<string, vector<string>> M;
for(int  i = 0; i < strs.size(); i++)
{
string str = strs[i];
sort(strs[i].begin(), strs[i].end()); // Sorting the string
M[strs[i]].push_back(str);  // Sorted string is the key and the value is the initial string
}
for(auto i = M.begin(); i != M.end(); i++)
ans.push_back(i -> second);  // Traversing the map and adding the vectors of string to ans
return ans;
}
};
``````

### Group Anagrams LeetCode Solution in JavaScript

``````const groupAnagrams = strs => {
const map = {};

for (let str of strs) {
const key = [...str].sort().join('');

if (!map[key]) {
map[key] = [];
}

map[key].push(str);
}

return Object.values(map);
};
``````

### Group Anagrams LeetCode Solution in Python3

``````class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
h = {}
for word in strs:
sortedWord = ''.join(sorted(word))
if sortedWord not in h:
h[sortedWord] = [word]
else:
h[sortedWord].append(word)
final = []
for value in h.values():
final.append(value)
return final
``````
##### Group Anagrams LeetCode Solution Review:

In our experience, we suggest you solve this Group Anagrams LeetCode Solution and gain some new skills from Professionals completely free and we assure you will be worth it.

If you are stuck anywhere between any coding problem, just visit Queslers to get the Group Anagrams LeetCode Solution

Find on LeetCode

##### Conclusion:

I hope this Group Anagrams LeetCode Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.

This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.

Keep Learning!

More Coding Solutions >>

LeetCode Solutions

Hacker Rank Solutions

CodeChef Solutions