Group Anagrams

Given an array of strings, group anagrams together.

For example, given:["eat", "tea", "tan", "ate", "nat", "bat"],
Return:

[
  ["ate", "eat","tea"],
  ["nat","tan"],
  ["bat"]
]

Note:All inputs will be in lower-case.

Tips:

建一张map,以排好序的String为key,然后输出这个表的valueSet为arrayList即可。

Code:

public List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>> res = new ArrayList<>();
        Map<String, List<String>> map = new HashMap<>();
        for (String str : strs) {
            char[] c = str.toCharArray();
            Arrays.sort(c);
            String ana = String.valueOf(c);
            if (!map.containsKey(ana)) map.put(ana, new ArrayList<>());
            map.get(ana).add(str);
        }
        for (String s : map.keySet()) {
            res.add(map.get(s));
        }
        return res;
    }
}

results matching ""

    No results matching ""