专栏名称: 猿大侠
猿大侠,既然选择了,就一定成为大侠! 小程序、小游戏、Google、苹果、职场、前沿技术分享,一起成长。
目录
相关文章推荐
青岛日报  ·  张学友,传来好消息! ·  12 小时前  
青岛日报  ·  张学友,传来好消息! ·  12 小时前  
苍梧晚报  ·  胡歌,突发新消息! ·  昨天  
苍梧晚报  ·  胡歌,突发新消息! ·  昨天  
FM1007福建交通广播  ·  差点成影帝!章子怡提问杨子《再见爱人》是演的 ... ·  3 天前  
FM1007福建交通广播  ·  差点成影帝!章子怡提问杨子《再见爱人》是演的 ... ·  3 天前  
51好读  ›  专栏  ›  猿大侠

降本增笑,裁到大动脉了,小红书和B站全崩了。。

猿大侠  · 公众号  ·  · 2024-07-03 12:13

正文

已经很久没有打开B站了,很巧的是今天上午打开B站想看一些视频,结果一直出现网络错误,我以为是很久没打开,软件版本太老了,需要更新,所以就没管他,直接退出了。


结果上午在写文章的时候看到“B站崩了”,我又上网查了一下发现不光B站崩了,小红书也崩了,还有其他的一些网站比如酷安网等也都崩了。


随后阿里云服务器针对上海可用区N网络访问异常发布公告,搞了半天原来是阿里云服务器出了问题。网友评论:降本增笑,裁到大动脉了。





--------------下面是今天的算法题--------------


来看下今天的算法题,这题是LeetCode的第 49题: 字母异位词分组。


问题描述



来源:LeetCode第49题
难度:中等

给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例1:

输入 : strs = ["eat", "tea", "tan", "ate", "nat", "bat"]

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


  • 1 <= strs.length <= 10^4

  • 0 <= strs[i].length <= 100

  • strs[i] 仅包含小写字母


问题分析



这题是让把相同的字母异位词分到一组,判断两个字符串是否是字母异位词有两种方式, 一种是对每个字符串中的所有字母排序 ,如果两个字符串中字母排序的结果是一样的,那么这两个字符串就是字母异位词。

比如字符串“bcac”排序之后是“abcc”,字符串“cbac”排序之后也是“abcc”,所以字符串“bcac”和字符串“cbac”是字母异位词。

还一种方式是统计每个字符串中每个字符出现的次数 然后转化为字符串,比如字符串“bcac”可以转化为“112”,表示有1个a,1个b,2个c。字符串“cbac”也可以转化为112”,所以字符串“bcac”和字符串“cbac”是字母异位词。


第一种方式比较简单,但需要排序,效率不如第二种,我们这里用第二种方式来看下代码。

JAVA:
public List> groupAnagrams(String[] strs) {
    Map> map = new HashMap<>();
    for (String str : strs) {
        char[] ch = new char[26];
        // 统计字符串中每个字符串出现的次数
        for (char c : str.toCharArray())
            ch[c - 'a']++;
        // 转化为字符串。
        String keyStr = String.valueOf(ch);
        if (!map.containsKey(keyStr))
            map.put(keyStr, new ArrayList<>());
        map.get(keyStr).add(str);
    }
    return new ArrayList<>(map.values());
}

C++:
public:
    vector<vector






请到「今天看啥」查看全文