题目描述
**求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和tab),如果这样的字符不止一个,则输出第一个。
**输入格式
第一行输入整数N,表示测试数据的组数。
每组数据占一行,包含一个不含空白字符的字符串,字符串长度不超过200。
输出格式
共一行,输出最长的连续出现的字符及其出现次数,中间用空格隔开。****
样例
输入样例:
2
aaaaabbbbbcccccccdddddddddd
abcdefghigk
输出样例:
d 10
a 1
算法1
一: 调用while(a[j]==a[i]) j++;相同字母区间滑动;
二:调用if(j-i>cnt)
{
cnt =j-i;
c =a[i];
}
其中内部,cnt存储相同字母的个数;
c存储相同的字母;
C++ 代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int k;
cin>>k;
while(k--)
{
string a;
cin>>a;
int cnt=0;
char c;
for(int i=0;i<a.length();i++)
{
int j=i;
while(a[j]==a[i]) j++;
if(j-i>cnt)//判断相同字母数量是否最多
{
cnt =j-i;//cnt存储相同字母的个数;
c =a[i];//c存储相同的字母;
}
i=j-1;
}
cout<<c<<' '<<cnt<<endl;
}
return 0;
}
看不懂