49. Group Anagrams ๐คนโโ๏ธ
Last updated
Was this helpful?
Last updated
Was this helpful?
Difficulty: Medium
- Tags: Hash Table
, String
, Sorting
Given an array of strings strs
, group the anagrams together. An anagram is a word or phrase formed by rearranging the letters of another, using all the original letters exactly once.
The answer can be returned in any order.
๐น Example 1:
Input:
Output:
๐น Example 2:
Input:
Output:
๐น Example 3:
Input:
Output:
1 <= strs.length <= 10^4
0 <= strs[i].length <= 100
strs[i]
consists of lowercase English letters.
To group anagrams, we can use a HashMap
where:
The key is a representation of the sorted characters of a word.
The value is a list of words that share the same sorted characters.
Sorting and Grouping:
Convert each string to a character array, sort it, and convert it back to a string.
Use this sorted string as the key in a HashMap
.
Add the original string to the list corresponding to this key.
Result:
The HashMap
values contain grouped anagrams.
Return all the values as a list of lists.
O(n * k log k):
Sorting each string (k log k
, where k
is the max length of a string).
Iterating through n
strings.
O(n * k):
Space for the HashMap
to store n
strings of length k
.
You can find the full solution .