当前位置: 首页 > news >正文

1358. 包含所有三种字符的子字符串数目

目录

  • 一、题目
  • 二、思路
    • 2.1 解题思路
    • 2.2 代码尝试
    • 2.3 疑难问题
  • 三、解法
  • 四、收获
    • 4.1 心得
    • 4.2 举一反三

一、题目

在这里插入图片描述

二、思路

2.1 解题思路

滑动窗口+哈希表

2.2 代码尝试

class Solution {
public:
    int numberOfSubstrings(string s) {
        int l=0;
        int len=s.size();
        int count=0;
        //用哈希表来存储出现次数
        vector<int> p(3);//3个字母
        for(int r=0;r<s.size();r++){
            p[s[r]-'a']++;//每次遍历,对应哈希表+1
            if(p[0]*p[1]*p[2]!=0){
                count+=len-r;
                p[s[l]-'a']--;
                l++;
            }
        }
        while(p[0]*p[1]*p[2]>0){
            count++;
            p[s[l]-'a']--;
            l++;
        }
        return count;
    }
};

能解出部分题目,感觉逻辑判断上差了一点,不能满足很多种情况。不过基本的路线应该没错,哈希表做判断。这道题有点变化,我感觉还是判断条件没找准。结构还是模板题。

2.3 疑难问题

三、解法

class Solution {
    int cnt[3];
public:
    int numberOfSubstrings(string s) {
        int len=(int)s.length(),ans=0;
        cnt[0]=cnt[1]=cnt[2]=0;
        for (int l=0,r=-1;l<len;){
            while (r<len && !(cnt[0]>=1 && cnt[1]>=1 && cnt[2]>=1)){
                if (++r==len) break;
                cnt[s[r]-'a']++;
            }
            ans+=len-r;
            cnt[s[l++]-'a']--;
        }
        return ans;
    }
};

作者:力扣官方题解
链接:https://leetcode.cn/problems/number-of-substrings-containing-all-three-characters/solutions/109170/bao-han-suo-you-san-chong-zi-fu-de-zi-zi-fu-chuan-/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

四、收获

4.1 心得

这题变化就在于之前每次都是窗口右边一点一点的动,然后左边快速收敛直至满足窗口条件。但是这道题变化的就是左边一点一点动,右边快速统计直到末尾。这道题变化的很好。

4.2 举一反三

尺蠖向哪边蠕动要看具体的规则判断情况。

相关文章:

  • 复试准备日常
  • 什么是SYN洪范攻击?
  • 抖音DP代运营服务——品融电商赋能品牌增长
  • Python 调试pdb和-i模式
  • NodePort+LoadBalancer+Ingress+MetalLB+HostNetwork+Istio Gateway
  • 【神经网络】python实现神经网络(一)——数据集获取
  • 通俗的方式解释“零钱兑换”问题
  • 利用Python爬取中国气象局天气预报数据
  • ctf网络安全赛题
  • tsconfig.json 配置清单
  • C语言运算符优先级,简单样例理解
  • 从芯片到光网络:解密平面光波导技术(PLC)核心优势
  • 【IEEE/EI/Scopus检索】2025年3-4月传感器与信息技术、通信、软件、信号处理领域国际学术会议征稿开启!
  • 【0001】初识Java
  • 新豪轩荣登国货之光计划领航中国定制门窗发展新征程
  • 【练习】【链表】力扣热题100 19. 删除链表的倒数第 N 个结点
  • 扩散语言模型:从图像生成到文本创造的范式跃迁
  • redis事务详解
  • 【FastGPT】如何新增用户修改密码
  • [经验总结]Exec format error——Shebang解释器声明省略的锅
  • 苏州制作网站的公司/网络营销工程师是做什么的
  • IC 网站建设/关联词有哪些
  • 南宁月嫂网站建设/优化网站快速排名软件
  • 济南正规网站建设公司哪家好/百度推广登陆平台
  • 柳州 网站建设/互动营销名词解释
  • 毕业设计论文网站/成品网站货源1