美文网首页
LeetCode No.2 字母异位词分组

LeetCode No.2 字母异位词分组

作者: MRYDM | 来源:发表于2019-05-10 16:16 被阅读0次

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. 结果

提交结果

相关文章

网友评论

      本文标题:LeetCode No.2 字母异位词分组

      本文链接:https://www.haomeiwen.com/subject/jpyaoqtx.html