AcWing 771. 字符串中最长的连续出现的字符
原题链接
中等
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int t;
cin>>t;//定义且输入测试数据的个数
while(t--){//while循环测试数据个数,当等于零的时候停止
string s;
cin>>s;//定义且输入不包含空格的字符串
char c;//定义最长的字符
int cnt=0;//定义最长的个数
for(int i=0;i<s.size();i++){//for循环遍历每一个字符
int j=i;//定义连续的字符起点为j
while(s[j]==s[i]&&j<s.size()) j++;//当字符相等时且不越界时,下标j连加1
if(j-i>cnt){ //如果连续字符的下标之差大于定义的最大个数
cnt=j-i;//个数等于j-i
c=s[i];//字符为该连续的字符
}
i=j-1;//当出了连续字符后,再回到for时会有j++,所以要在此-1
}
cout<<c<<" "<<cnt<<endl;//在最外层的循环后输出(注意输出的格式)
}
return 0;
}