字母异位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例:

输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
说明:

所有输入均为小写字母。
不考虑答案输出的顺序。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>> resultList = new LinkedList<>();
        Map<String,List<String>> result=new HashMap<>();
        int length = strs.length;
        for (int i=0;i< length;i++){
            char[] chars=strs[i].toCharArray();
            Arrays.sort(chars);
            String key=new String(chars);
            if(!result.containsKey(key)){
                result.put(key,new LinkedList<String>());
            }
            result.get(key).add(strs[i]);

        }
        for(List<String> list : result.values()) {
            resultList.add(list);
        }
        return resultList;
    }
}

本身想法并不难,需要注意的点是我们在选择List的时候是选择的LinkedList,ResultList也是选择的LinkedList,充分利用了Java中ArrayList和LinkedList的特性,ArrayList易查找,插入慢。而LinkedList易增删,查找慢,选择时要根据情况来选择二者,而

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • LeetCode题目链接链接 https://leetcode-cn.com/problems/group-ana...
    Mastergad阅读 323评论 0 0
  • 又很久没有做做题了,哎…… 题目-LeetCode字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母...
    DuBetter阅读 456评论 0 0
  • 题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例:输入: [...
    windUtterance阅读 430评论 0 0
  • @61+白米饭饭 不厉害,三级只要把书看熟再做题就好了,据说二级很难呢。关于心理学入门书,系统知识性的就是《普通心...
    劲汶阅读 135评论 0 0
  • 美联储FOMC声明 投票比例:委员们一致同意维持联邦基金利率不变,同时维持贴现率和超额准备金率不变; 加息前景:重...
    马丁路德chen阅读 171评论 0 0