力扣2953.统计完全子字符串

力扣2953.统计完全子字符串

  • 先分组循环求出每个组 分别算个数

    • 对于每个组 枚举一遍其中有多少种字母
    • 用cnt数组记录每个字母出现次数 check的时候也是暴力枚举cnt中每个字母出现次数
  • **分组循环:**从i(新一组的起点)开始,当满足条件时++,最后退出循环时一定是到了下一个组的起点然后继续循环

  • **Lambda表达式:**auto check = \&(){...}可以调用/修改外部作用域的变量

  • 如本题用check就是调用外部的cnt数组

  • string_view:就是用新的变量名表示原字符串

  • 但是不会调用拷贝 是"共享"的

cpp 复制代码
  

class Solution {

int f(string_view s,int k)

{

int res=0;

for(int m=1;m<=26 && k * m <= s.size();m++)

{

int cnt26{};

auto check = &{

for(int i=0;i<26;i++)

if(cnti && cnti != k) return ;

res++;

};

for(int right=0;right<s.size();right++)

{

cnts\[right - 'a'] ++;

int left = right + 1 - k*m;

if(left >= 0)

{

check();

cnts\[left - 'a'] --;

}

}

}

return res;

}

public:

int countCompleteSubstrings(string word, int k) {

int n = word.size();

int ans = 0;

string_view s(word);

for(int i=0;i<n;)

{

int st = i;

for(i++;i<n && abs((int)wordi - (int)wordi-1) <= 2;i++);

ans += f(s.substr(st,i-st),k);

}

return ans;

}

};

复制代码

​

相关推荐
y1su2 小时前
Leetcode 动态规划 模板
java·数据结构·算法·leetcode·动态规划
All for pursuit.3 小时前
【位运算-3】136.只出现一次的数字
数据结构·c++·算法·leetcode
MoRanzhi12033 小时前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理
suhan4 小时前
【数据结构】五、树:7.哈夫曼树、哈夫曼编码
数据结构·算法·排序算法
kkhimself4 小时前
POJ-3126
算法
suhan4 小时前
【数据结构】五、树:6.平衡二叉树AVL
数据结构·算法·排序算法
suhan4 小时前
【数据结构】五、树:5.二叉排序树BST
数据结构·算法·排序算法
爱读书的小胖4 小时前
80. 删除有序数组中的重复项 II
java·数据结构·算法
臻选云栗子5 小时前
PCDN跑不起来?先别甩锅给平台,问题可能出在这
算法·程序员
小画家~5 小时前
vue3 里面的 itemList.reduce
前端·数据结构·算法