zoukankan      html  css  js  c++  java
  • leetcode——49.字母异构词分组

    完成,还算顺利

    public List<List<String>> groupAnagrams(String[] strs) {
            //将第一个字符串放进一个数组,之后与前面的组的第一个字符串做比较,
            // 当出现新的字符的时候,就添加一个新的数组进去,
            // 依次类推,直到遍历结束,返回结果
    
            //字母异位词,要求知道出现的不同字符有哪些,以及各自出现的次数,字符串长度需要相等
            // 这应该用map来存储吧,键为出现的字符,值为次数;
    
            //看了别人的思路,可以将字符串的字符按照字母排列顺序进行排序,相同的放置在同一组
    
            int len = strs.length;
            List<List<String>> list = new ArrayList<>();
            if(len == 0 ) {
                return list;
            }
            //创建一个map,用于存放排序之后的结果以及向对应的位置
            Map<String,Integer> map = new HashMap<>();
            int k = 0;
            for (String s : strs) {
                //如何对字符串按字母表的顺序进行排列?
                char[] c = s.toCharArray();
                Arrays.sort(c);
                //将字符数组拼接起来
                String str = join(c);
                if (!map.containsKey(str)) {
                    map.put(str, k);
                    k++;
                    List<String> l = new ArrayList<>();
                    l.add(s);
                    list.add(l);
                } else {
                    //若存在即存入相应数组,不存在则创建新的数组
                    int index = map.get(str);
                    list.get(index).add(s);
                }
            }
            return list;
    
        }
    
        private String join(char[] c) {
            StringBuilder sb = new StringBuilder();
            for (char value : c) {
                sb.append(value);
            }
            return sb.toString();
        }

    其他答案思路相同,形式可简化。

     ——2020.7.8

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    Spring 学习——Spring IOC概念
    Oracle使用——Oracle表空间处理
    Spring 学习——Spring框架结构、概念
    Java错误——The hierarchy of the type is inconsistent错误
    Git教程
    git 常用操作
    "use strict"; 的正确使用
    react学习笔记(二)React表单详解
    chrome 添加有用扩展程序
    react学习笔记(一)
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13265597.html
Copyright © 2011-2022 走看看