leetcode经典例题——49.字母异位词分组

49.字母异位词分组

题目描述:

思路:其实大家可以想想如果是int类型的数组,我们会怎么做,估计有不少小伙伴,脱口而出,遍历出来,直接进行排序,再分组;但为什么String类型的数组,咱们不可以去排序分组呢,哈哈哈这么一想大家是不是有种豁然开朗的感觉,我们只需要str.toCharArray() 把字符串变成字符数组,不就可以排序了,排序完再进行分组,至于分组就可以用Map集合来实现;

来看看代码:

 public List<List<String>> groupAnagrams(String[] strs) {
        if (strs.length <1) return new ArrayList<>();
        Map<String,List<String>> map = new HashMap<>();
        for (String str : strs) {
            char[] chars = str.toCharArray();
            Arrays.sort(chars);
            if (!map.containsKey(String.valueOf(chars)))
                map.put(String.valueOf(chars),new ArrayList<>());

            map.get(String.valueOf(chars)).add(str);
        }
        return new ArrayList<>(map.values());
    }

总结:第一次看到这题,我也陷入一个困境 ,有点无从下手的感觉,哥们也是第一次看到这种题,有点想硬算,去暴力匹配,但一想这种方法肯定超时;也是看的题解才有的思路哈哈哈,大家有时候算法解不出来适当看看题解,也是可以帮助自己思考的!

猜你喜欢

转载自blog.csdn.net/weixin_72076848/article/details/126117083
今日推荐