Group Anagrams
Question
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"],
Solution
一樣,自己有想到跟解答類似的解法,就是用 Map
public List<List<String>> groupAnagrams(String[] strs) {
        if (strs.length == 0 || strs == null) {
            return new ArrayList<List<String>>();
        }
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        for (String s : strs) {
            char[] chars = s.toCharArray();
            Arrays.sort(chars);
            String tempStr = String.valueOf(chars);
            if (!map.containsKey(tempStr)) {
                map.put(tempStr, new ArrayList<String>());
            } 
            map.get(tempStr).add(s);
        }
        return new ArrayList<List<String>>(map.values());
    }