zoukankan      html  css  js  c++  java
  • [leetcode]49. Group Anagrams重排列字符串分组

    是之前的重排列字符串的延伸,判断是重排列后存到HashMap中进行分组

    这种HashMap进行分组的方式很常用

    public List<List<String>> groupAnagrams(String[] strs) {
            /*
            其实重排列的那个题是有两种做法的,之前整理的是比较好的的一种字母哈希表的方法,还有一种方法
            是把字符串排序,然后进行比较就行。
            这个题正好就是用了排序的方法,排序后的字符串作为key,list作为value就行
            一开始想用字母哈希表的方法,结果没做出来
            java中没有字符串排序方法,要自己实现
             */
            Map<String,List<String>> map = new HashMap<>();
            for (int i = 0; i < strs.length; i++) {
                String str  = strs[i];
                String temp = sort(str);
                List<String> list = map.getOrDefault(temp,new ArrayList<>());
                list.add(str);
                map.put(temp,list);
            }
            List<List<String>> res = new ArrayList<>();
            for (String str:
            map.keySet()){
                res.add(map.get(str));
            }
            return res;
        }
        public String sort(String str)
        {
            char[] chars = str.toCharArray();
            Arrays.sort(chars);
            return new String(chars);
        }

    分组就要想到HashMap!!!!!!!!!!!

  • 相关阅读:
    HTTP协议
    在项目中使用模块
    将封装模块发布到NPM注册表
    package.json文件常用指令说明
    npm常用命令
    分享wifi热点
    Globals模块常用的方法和属性
    WebStorm2016.1.1永久破解
    Module
    解释器模式(Interpreter Pattern)
  • 原文地址:https://www.cnblogs.com/stAr-1/p/8289200.html
Copyright © 2011-2022 走看看