time limit per test: 1 second
memory limit per test: 256 megabytes
input: standard input
output: standard output
Given a string of length and integer . The string has a level , if is largest non-negative integer, such that it’s possible to find in :
- non-intersecting (non-overlapping) substrings of length ,
- 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 and , denoted as = “”.
For example, if , then:
the string “aabb” has level (you can select substring “aa”),
the strings “zzzz” and “zzbzz” has level (you can select two non-intersecting substrings “zz” in each of them),
the strings “abed” and “aca” have level (you can’t find at least one substring of the length containing the only distinct character).
Zuhair gave you the integer and the string s of length . You need to find , the level of the string .
Input
The first line contains two integers and — the length of the string and the value of .
The second line contains the string of length n consisting only of lowercase Latin letters.
Output
Print a single integer — 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 non-intersecting substrings consisting of letter ‘a’: “(aa)ac(aa)bb”, so the level is .
In the second example, we can select either substring “a” or “b” to get the answer .
题意
给出一个长度为的字符串,在字符串中查找连续出现次的字母,中间不能有重叠,连续出现次的字母最多出现了几次
AC代码
暴力查找即可,注意的情况
#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__)<<"]"<<"
"
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;
}