本体结合第三讲716 最大的数和他的位置
第五讲766 去掉多余的空格的第二种算法
第五章771 字符串中最长的连续出现的字符
双指针核心是26 27 32 三行,在其中加入做题解法即可。
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n;
cin >> n;
while(n--){//对处理多组数据的简单算法
string str;
cin >> str;
char c;//找字符用,设成char型
int len = 0;//先把长度设置成最小
for(int i = 0; i < str.size(); i++){
int j = i;
while(j < str.size() && str[j] == str[i]) j++;//此时j已经加到不相等的第一个字符了
if(j - i > len){
len = j - i;//找最大的长度
c = str[i];//找相应字符
}
i = j - 1;//结束循环进去下一个循环会i++,提前那减去1,防止漏掉第一个不相等的字符
}
cout << c << ' ' << len << endl;
}
return 0;
}