g0001_0100.s0049_group_anagrams.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0001_0100.s0049_group_anagrams;
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #String #Hash_Table #Sorting
// #Data_Structure_II_Day_8_String #Programming_Skills_II_Day_11 #Udemy_Strings
// #Big_O_Time_O(n*k_log_k)_Space_O(n) #2023_08_11_Time_6_ms_(92.28%)_Space_46.4_MB_(98.50%)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 49 - Group Anagrams\.
*
* Medium
*
* 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.
**/
public class Solution {
public List> groupAnagrams(String[] strs) {
Map> hm = new HashMap<>();
for (String s : strs) {
char[] ch = s.toCharArray();
Arrays.sort(ch);
String temp = new String(ch);
hm.computeIfAbsent(temp, k -> new ArrayList<>());
hm.get(temp).add(s);
}
return (new ArrayList<>(hm.values()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy