49. Group Anagrams

Medium

好几个String, HashMap的API不是很熟悉,但非常实用,记一下吧:

  • char[] 和 String的互相转换

char[] chas = s.toCharArray();
String keyStr = String.valueOf(chas);

  • 遍历hashmap的所有key

map.keySet()

  • 将map.values()以 ArrayList>类型返回
    这里主要是要知道ArrayList的一个构造函数:


    Screen Shot 2017-11-18 at 5.46.30 PM.png

熟悉一下HashMap其他的api

49. Group Anagrams_第1张图片
Screen Shot 2017-11-18 at 5.44.50 PM.png
49. Group Anagrams_第2张图片
Screen Shot 2017-11-18 at 5.44.59 PM.png

逻辑很简单,没什么好说的,感觉完全在考api

class Solution {
    public List> groupAnagrams(String[] strs) {
        List> res = new ArrayList<>();
        if (strs == null || strs.length == 0){
            return res;
        }
        Map> map = new HashMap<>();
        for (String s : strs){
            char[] chas = s.toCharArray();
            Arrays.sort(chas);
            String keyStr = String.valueOf(chas);
            if (!map.containsKey(keyStr)){
                map.put(keyStr, new ArrayList());
            }
            map.get(keyStr).add(s);
        }
        for (String s : map.keySet()){
            Collections.sort(map.get(s));
        }
        return new ArrayList>(map.values());
    }
}

你可能感兴趣的:(49. Group Anagrams)