1. 程式人生 > >LeetCode---49. Group Anagrams

LeetCode---49. Group Anagrams

LeetCode—49. Group Anagrams

題目

思路及解法

首先想到能夠使用hashmap解決這個問題。然後考慮key和value是什麼,我們要把字元相同的字串放到一起,所以value就可以是一個string的list,裝載分組相同的字串;key我們使用排序sort過的對應字元,注意要轉換為string。

程式碼

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        int strNum = strs.length;
        HashMap<String, List<String>> hm = new HashMap<>();
        for(int i=0; i<strNum; i++){
            char[] c = strs[i].toCharArray();
            Arrays.sort(c); //排序
            String key = String.valueOf(c); //轉換為string
            if(!hm.containsKey(key)) hm.put(key, new ArrayList<String>());
            hm.get(key).add(strs[i]);
        }
        return new ArrayList<List<String>>(hm.values());
     }
}