본문 바로가기

알고리즘과 자료구조/OJ

LeetCode 49. Group Anagrams

  • Problem 
    • 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.
  • Constraints
    • 1 <= strs.length <= 104
    • 0 <= strs[i].length <= 100
    • strs[i] consists of lowercase English letters.

 

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        HashMap<String, List<String>> hmap = new HashMap<>();
        
        for(String s : strs){
            char[] ch = s.toCharArray();
            Arrays.sort(ch);
            String temp = String.valueOf(ch);
            
            if(hmap.get(temp)==null)   hmap.put(temp, new ArrayList<String>());
            hmap.get(temp).add(s);
        }
        
        return new ArrayList<>(hmap.values());
    }
}