统计完全子字符串

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

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;
    }
};
相关推荐
蓝莓果16 小时前
20行python代码的入门级小游戏
开发语言·python·pygame
xcLeigh16 小时前
python小游戏实战:打造一款视觉精美的飞机大战
开发语言·python·小游戏·pygame·python3·飞机大战
xcLeigh17 小时前
Python入门:Python3 数据结构全面学习教程
数据结构·python·学习·教程·python3
小羊苏八17 小时前
Python 深入 pygame模块
开发语言·python·pygame
无水先生17 小时前
【OpenGL教程4】高级 OpenGL实现:使用 PyGame 和 PyOpenGL混合编程
开发语言·python·pygame
vx:Oct-w7717 小时前
毕业设计----用python制作的古诗词拼接接龙游戏
数据结构·python·sql·算法·游戏·pycharm
wgc2k18 小时前
Nest.js基础-2、Node.js的版本管理和包管理
开发语言·javascript·node.js
Kris_LinSD18 小时前
算法小实验——分治算法二分搜索(含报告)
c语言·算法
Slow菜鸟18 小时前
Kiro 学习指南
java·开发语言
取加若则_1 天前
Linux进程调度:双队列高效管理
linux·算法