统计完全子字符串

很不错的计数问题,用到了分组循环技巧和滑动窗口 代码的实现方式也非常值得多看

cpp 复制代码
class Solution {
public:
    int f(string s,int k){
        int res = 0;
        for(int m=1;m<=26&&k*m<=s.size();++m){
            int cnt[27]{};
            auto check=[&](){
                for(int i=0;i<=26;++i){
                    if(cnt[i]&&cnt[i]!=k)return;
                }
                res++;
            };

            for(int r=0;r<s.size();++r){
                cnt[s[r]-'a']++;
                int l = r+1-k*m;
                if(l>=0){
                    check();
                    cnt[s[l]-'a']--;
                }
            }
        }
        return res;
    }
    int countCompleteSubstrings(string word, int k) {
        int n = word.size();
        int res = 0;
        for(int i=0;i<n;){
            int start = i;
            ++i;
            while(i<n&&abs(int(word[i]-word[i-1]))<=2)++i;
            res+=f(word.substr(start,i-start),k);
        }
        return res;
    }
};
相关推荐
李小小钦几秒前
D. Storming Arasaka(Codeforces 2238)
c语言·开发语言·数据结构·c++·算法
W是笔名2 分钟前
python___容器类型的数据___列表
开发语言·windows·python
跨境数据猎手3 分钟前
多平台电商比价系统从零搭建合规
开发语言·爬虫·架构
卷无止境10 分钟前
SFML 深度解读:一个教科书级 C++ 多媒体库的内功心法
c++·后端
先吃饱再说20 分钟前
一篇吃透树的遍历:递归与迭代的完整拆解
数据结构·算法
hai31524754329 分钟前
九章编译法:DEEPSEEK V3.2汇编编译实例
java·开发语言
lkshop29 分钟前
Next.js 网站 SEO 优化:从 SSR、Sitemap 到结构化数据
开发语言·javascript·ecmascript
Robot_Nav1 小时前
贪心算法、动态规划与 MPPI 算法结构相关力扣题目汇总
算法·贪心算法·动态规划
灯澜忆梦1 小时前
GO_函数_2
开发语言·golang·xcode
June bug1 小时前
【199管理类联考】写作(第一轮复习)
考研·职场和发展·学习方法