time limit per test: 1 second
memory limit per test: 256 megabytes
input: standard input
output: standard output
Given a string sss of length nnn and integer k (1≤k≤n)k\ (1≤k≤n)k (1≤k≤n). The string sss has a level xxx, if xxx is largest non-negative integer, such that it’s possible to find in sss:
- xxx non-intersecting (non-overlapping) substrings of length kkk,
- all characters of these x substrings are the same (i.e. each substring contains only one distinct character and this character is the same for all the substrings).
A substring is a sequence of consecutive (adjacent) characters, it is defined by two integers iii and j (1≤i≤j≤n)j\ (1≤i≤j≤n)j (1≤i≤j≤n), denoted as s[i…j]s[i…j]s[i…j] = “sisi+1…sjs_is_{i+1}…s_jsisi+1…sj”.
For example, if k=2k=2k=2, then:
the string “aabb” has level 111 (you can select substring “aa”),
the strings “zzzz” and “zzbzz” has level 222 (you can select two non-intersecting substrings “zz” in each of them),
the strings “abed” and “aca” have level 000 (you can’t find at least one substring of the length k=2k=2k=2 containing the only distinct character).
Zuhair gave you the integer kkk and the string s of length nnn. You need to find xxx, the level of the string sss.
Input
The first line contains two integers nnn and k (1≤k≤n≤2⋅105)k\ (1≤k≤n≤2⋅10^5)k (1≤k≤n≤2⋅105) — the length of the string and the value of kkk.
The second line contains the string sss of length n consisting only of lowercase Latin letters.
Output
Print a single integer xxx — the level of the string.
Examples
input
8 2
aaacaabb
output
2
input
2 1
ab
output
1
input
4 2
abab
output
0
Note
In the first example, we can select 222 non-intersecting substrings consisting of letter ‘a’: “(aa)ac(aa)bb”, so the level is 222.
In the second example, we can select either substring “a” or “b” to get the answer 111.
题意
给出一个长度为nnn的字符串,在字符串中查找连续出现kkk次的字母,中间不能有重叠,连续出现kkk次的字母最多出现了几次
AC代码
暴力查找即可,注意k=1k=1k=1的情况
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <limits.h>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <string>
#include <time.h>
#define ll long long
#define ull unsigned long long
#define ms(a,b) memset(a,b,sizeof(a))
#define pi acos(-1.0)
#define INF 0x7f7f7f7f
#define lson o<<1
#define rson o<<1|1
#define bug cout<<"-------------"<<endl
#define debug(...) cerr<<"["<<#__VA_ARGS__":"<<(__VA_ARGS__)<<"]"<<"\n"
const double E=exp(1);
const int maxn=1e6+10;
const int mod=1e9+7;
using namespace std;
char ch[maxn];
int a[maxn];
bool cmp(int a,int b)
{
return a>b;
}
int main(int argc, char const *argv[])
{
ios::sync_with_stdio(false);
int n,k;
cin>>n>>k;
cin>>ch;
int res=1;
for(int i=0;i<n;i++)
{
if(k==1)
a[ch[i]-'a']++;
else
{
if(ch[i]==ch[i+1])
res++;
else
res=1;
if(res==k)
{
a[ch[i]-'a']++;
res=1;
i+=1;
}
}
}
sort(a,a+26,cmp);
cout<<a[0]<<endl;
return 0;
}