• 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

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    诗人就是“情场浪子”的代名词?
    微博营销,开启营销的新时代
    网店成功之道:卖家应有4种心态(实战交流)
    一枚钉子前进
    推动中国文学的发展,我义不容辞
    微博营销,再次引爆网络江湖
    微博营销,不仅仅是粉丝
    邮件群发软件版本升级公告
    如何让自己在浩瀚的网海中脱颖而出
    如何定时关机【windows/linux】
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13265597.html
Copyright © 2020-2023  润新知