题目链接:
pid=5056
题目大意:就是问在子串中每一个小写字母出现次数不超过k次的个数,注意子串是连续的子串。。
。
。
思路:
code:
#include #include #include #include #include using namespace std;char str[100010];int cnt[30];int main(){ int T,k,i; scanf("%d",&T); while(T--) { memset(str,0,sizeof(str)); memset(cnt,0,sizeof(cnt)); scanf("%s%d",str,&k); int len=strlen(str); int starPos=0; __int64 ans=0; for(i=0;i k) { while(str[starPos]!=str[i]) { cnt[str[starPos]-'a']--; starPos++; } cnt[str[starPos]-'a']--; starPos++; } printf("AAA %d %d\n",i,starPos); ans+=(i-starPos+1); } printf("%I64d\n",ans); } return 0;}