Codeforces 1105B:Zuhair and Strings(字符串水题)

time limit per test: 1 second
memory limit per test: 256 megabytes
input: standard input
output: standard output

Given a string ss of length nn and integer k (1kn)k (1≤k≤n). The string ss has a level xx, if xx is largest non-negative integer, such that it’s possible to find in ss:

  • xx non-intersecting (non-overlapping) substrings of length kk,
  • 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 ii and j (1ijn)j (1≤i≤j≤n), denoted as s[ij]s[i…j] = “sisi+1sjs_is_{i+1}…s_j”.

For example, if k=2k=2, then:

the string “aabb” has level 11 (you can select substring “aa”),
the strings “zzzz” and “zzbzz” has level 22 (you can select two non-intersecting substrings “zz” in each of them),
the strings “abed” and “aca” have level 00 (you can’t find at least one substring of the length k=2k=2 containing the only distinct character).
Zuhair gave you the integer kk and the string s of length nn. You need to find xx, the level of the string ss.

Input

The first line contains two integers nn and k (1kn2105)k (1≤k≤n≤2⋅10^5) — the length of the string and the value of kk.

The second line contains the string ss of length n consisting only of lowercase Latin letters.

Output

Print a single integer xx — 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 22 non-intersecting substrings consisting of letter ‘a’: “(aa)ac(aa)bb”, so the level is 22.

In the second example, we can select either substring “a” or “b” to get the answer 11.

题意

给出一个长度为nn的字符串,在字符串中查找连续出现kk次的字母,中间不能有重叠,连续出现kk次的字母最多出现了几次

AC代码

暴力查找即可,注意k=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__)<<"]"<<"
"
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;
}
原文地址:https://www.cnblogs.com/Friends-A/p/10324309.html