题目描述:
给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。
输入:
第一行包含一个正整数k,表示至少需要连续出现的次数。1 <= k <= 1000。
第二行包含需要查找的字符串。字符串长度在1到1000之间,且不包含任何空白符。
输出:
若存在连续出现至少k次的字符,输出该字符;否则输出No。
样例输入:
3
abcccaab
样例输出:
c
参考源码:
#include<cstdio>
#include<cstring>
int main()
{
int k;//至少要连续出现的次数
char a[1000];//需要查找的字符串
scanf("%d",&k);
scanf("%s",a);
int flag=0;//定义一个标记,表示是否存在该字符
char c;
if(k>strlen(a))//若k大于字符串的长度则一定不存在字符满足
{
printf("No\n");
}
else
{
for(int i=0;i<=strlen(a)-k;i++)//循环查找,直到倒数第k个字符
{
int t=0;
for(int j=i;j<i+k;j++)//外循环每增加一次,内循环就从该下标开始查找
{
if(a[j]==a[i])
t++;//记录连续相同字符的个数
}
if(t>=k)//当找到第一个连续相同字符的个数大于或等于k时,置标记为1,并跳出外循环
{
c=a[i];
flag=1;
break;
}
}
if(flag==0)//标记等于0,代表未找到该字符
printf("No\n");
else
printf("%c\n",c);
}
return 0;
}