49. Group Anagrams ๐คนโโ๏ธ
Difficulty: Medium
- Tags: Hash Table
, String
, Sorting
Problem Statement ๐
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.
Examples ๐
๐น Example 1:
Input:
Output:
๐น Example 2:
Input:
Output:
๐น Example 3:
Input:
Output:
Constraints โ๏ธ
1 <= strs.length <= 10^4
0 <= strs[i].length <= 100
strs[i]
consists of lowercase English letters.
Solution ๐ก
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.
Java Solution
Explanation of the Solution
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.
Time Complexity โณ
O(n * k log k):
Sorting each string (
k log k
, wherek
is the max length of a string).Iterating through
n
strings.
Space Complexity ๐พ
O(n * k):
Space for the
HashMap
to storen
strings of lengthk
.
You can find the full solution here.
Last updated