题目描述
求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和tab),如果这样的字符不止一个,则输出第一个。
输入格式
第一行输入整数N,表示测试数据的组数。
每组数据占一行,包含一个不含空白字符的字符串,字符串长度不超过200。
输出格式
共一行,输出最长的连续出现的字符及其出现次数,中间用空格隔开。
样例
输入样例:
2
aaaaabbbbbcccccccdddddddddd
abcdefghigk
输出样例:
d 10
a 1
先找到第一个字符,用双指针找到与当前字符不同的后面的第一个字符,求一下长度,若大于当前最大长度则更新字符和最大长度。
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
string s;
char c;
cin>>s;
int i,j,len=0;
for(i=0;i<s.size();i++){
j=i;
while(s[j]==s[i]&&j<s.size())//第一类双指针
j++;
if(j-i>len)
{
len=j-i;
c=s[i];
}
i=j-1;
}
cout<<c<<" "<<len<<endl;
}
return 0;
}