LeetCode No.2 字母异位词分组

2019-05-10  本文已影响0人  MRYDM

1. LeetCode49题目链接链接

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


2. 结题思路

该题主要是为了把使用相同字母组成的字符串放到同一个list中,这样的话,我们可以将string转为字符数组,然后给数组排序,如果相同的话,可以确定该字符为字母异位词。并维护一个Map,排序后的结果是唯一的,可以当做key,然后我们遍历给定的字符串,如果等于这个key的话,就加入到value中,最终map的values就是我们需要的结果。

public static List<List<String>> sortChars(String[] strs) {

        List<List<String>> data = new ArrayList();

        Map<String, List<String>> strMap = new HashMap<>();
        for (int i = 0; i < strs.length; i++) {
            char[] chars = strs[i].toCharArray();
            System.out.println(chars);
            Arrays.sort(chars);
            System.out.println(chars);
            String key = String.valueOf(chars);
            if (!strMap.containsKey(key)) {
                strMap.put(key, new ArrayList());
            }
            strMap.get(key).add(strs[i]);
        }
        data.addAll(strMap.values());
        return data;
    }

3. 结果

提交结果
上一篇下一篇

猜你喜欢

热点阅读