统计完全子字符串

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

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;
    }
};
相关推荐
临床数据科学和人工智能兴趣组12 小时前
在R语言中, 使用 as.factor() 函数转换数值型变量
开发语言·r语言
不会就选b15 小时前
算法日常・每日刷题--<贪心>25
数据结构·算法
andyweike15 小时前
php笔记
开发语言·笔记·php
蒸蒸yyyyzwd16 小时前
秋招学习笔记 day46
c++·八股
Circ.16 小时前
Python 调试 Litellm 本地大模型接口:模型列表与对话接口实操踩坑记录
开发语言·python
西部驯兽师17 小时前
制造企业的信息化选型课题(一)
职场和发展
现任明教教主~18 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
Zhou14113618 小时前
SpringSecurity_02_授权与高级功能
开发语言·python
Cccp.12319 小时前
【leetcode】(七)前缀树和贪心算法
数据结构·leetcode·贪心算法
天真小巫19 小时前
2026.9.28总结
职场和发展