Skip to content

Latest commit

 

History

History
49 lines (36 loc) · 2.07 KB

LeetCode 49字母异位词分组.md

File metadata and controls

49 lines (36 loc) · 2.07 KB

LeetCode 49字母异位词分组

image-20201118215801897

分析

题目的意思就是给若干个字符串单词,然后将含有全部相同的字母放到一个List<String>中。我们的核心问题是将这个放到哪里?

你可以使用暴力枚举,每次遍历判断,但是那样效率太低,所以我们可以进行哈希 存储。创建一个Map<String,List<String>>类型的HashMap进行存储。 在这里插入图片描述

实现代码为:

public List<List<String>> groupAnagrams(String[] strs) {
       List<List<String>>lists=new ArrayList<>();
       Map<String,List<String>>map=new HashMap<>();
       for(String str: strs)
       {
           char vachar[]=str.toCharArray();
           Arrays.sort(vachar);
           String team=String.copyValueOf(vachar);
           List<String>list=map.getOrDefault(team,new ArrayList<>());
           list.add(str);
           map.put(team,list);
       }
//        for(List<String> list:map.values())
//        {
//            lists.add(list);
//        }
       lists.addAll(map.values());
       return  lists;
   }

执行结果: 在这里插入图片描述

结语

原创不易,bigsai请你帮两件事帮忙一下:

  1. star支持一下, 您的肯定是我在平台创作的源源动力。

  2. 微信搜索「bigsai」,关注我的公众号,不仅免费送你电子书,我还会第一时间在公众号分享知识技术。加我还可拉你进力扣打卡群一起打卡LeetCode。

记得关注、咱们下次再见!

image-20201114211553660