原题题目
代码实现
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
while (n -- )
{
string s;
cin >>s;
int cnt=0;
char c;
for(int i=0;i<s.size();i++)
{
int j=i;
while(j<s.size()&&s[j]==s[i])j++;
if(j-i >cnt)cnt=j-i,c=s[i];
i=j-1;
}
cout << c<< ' '<< cnt<< endl;
}
return 0;
}
解题思路
首先创建一个整型变量n 用来存放要输入的数据的多少。
while(n–)是一个很常用的循环,非常好用。
它的意思是,先把n"赋值给while" 让while进行判断,只要n不为零,那么就会执行循环,随后n-- 。
string 一个字符串s 用来存储输入的字符串,搭配循环,就能保证先输入一串字符,做接下来的操作,然后再输入第二组,做后面的操作。
int 一个(创建一个整型变量)cnt 当作计数器。
char一个c 用来输出我们相同的字符。
随后一个for循环遍历字符串数组,从0开始,到长度为字符串长度位置结束。
这一段就是一个典型的双指针算法,本质就是定义两个变量,遍历数组,做判断。
判断是否相等,相等了,j就++ ,如果j-i>cnt cnt=j-i
c=s[i]更新字符。随后输出。