Suppose, we have a set of strings. We have to group anagram together. So if the ["eat", "tea", "tan", "ate", "nat", "bat"], then the groups are [["ate","eat","tea"],["nat","tan"],["bat"]]
To solve this, we will follow these steps −
- Define res as map
- for i in string array
- x := x and join, sorted string of i
- if x in result
- insert i in result[x]
- else result[x] := [i]
- return values of res as list
Example(Python)
Let us see the following implementation to get a better understanding −
class Solution: def groupAnagrams(self, strs): result = {} for i in strs: x = "".join(sorted(i)) if x in result: result[x].append(i) else: result[x] = [i] return list(result.values()) ob1 = Solution() print(ob1.groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"]))
Input
["eat", "tea", "tan", "ate", "nat", "bat"]
Output
[["ate","eat","tea"],["nat","tan"],["bat"]]