https://leetcode-cn.com/problems/group-anagrams/

    • 两个字符串所有字符种类、数量一样,就叫做同形词
    • 题目意思是给你一堆字符串,然后要你把是同形词的放在一块

    解法: 两个字符串排序完后如果是一样的那么就是同形词, 搞一个map, key是排序后的字符串, value是一个list

    1. public List<List<String>> groupAnagrams(String[] strs) {
    2. Map<String, List<String>> map = new HashMap<>();
    3. for (String str : strs) {
    4. char[] chs = str.toCharArray();
    5. Arrays.sort(chs);
    6. String key = String.valueOf(chs);
    7. if (!map.containsKey(key)) {
    8. map.put(key, new ArrayList<String>());
    9. }
    10. map.get(key).add(str);
    11. }
    12. List<List<String>> res = new ArrayList<>();
    13. for (List<String> list : map.values()) {
    14. res.add(list);
    15. }
    16. return res;
    17. }