题目意思是给你一个字符串和K,让你求其中有多少个字串中每个字母的出现次数不超过K次,可以等于
题目意思是很简单的,写起来也很简单,不过就是注意最后要是long long要不WA了,555~
#include <iostream> #include <cstring> #include <cstdio> using namespace std; char s[100005]; int n,cnt[30],k,T,st; long long ans; int main(){ cin>>T; cin.get(); while(T--){ scanf("%s",s); scanf("%d",&k); memset(cnt,0,sizeof(cnt)); ans=0; st=0; n=strlen(s); for (int i=0;i<n;i++){ cnt[s[i]-'a']++; while(cnt[s[i]-'a']>k) cnt[s[st++]-'a']--; ans+=i-st+1; } printf("%I64d\n",ans); } return 0; }