求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和 tab𝑡𝑎𝑏),如果这样的字符不止一个,则输出第一个。
输入格式
第一行输入整数 N𝑁,表示测试数据的组数。
每组数据占一行,包含一个不含空白字符的字符串,字符串长度不超过 200200。
输出格式
共一行,输出最长的连续出现的字符及其出现次数,中间用空格隔开。
输入样例:
2
aaaaabbbbbcccccccdddddddddd
abcdefghigk
输出样例:
d 10
a 1
使用双指针算法(第一类双指针)
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
while (n -- ){
string s;
char x;
int max = 0;
cin >> s;
for (int i = 0; i < s.size(); i ++ ){
int j = i;
while(j < s.size() && s[j] == s[i]) j++;
if(j - i > max){
max = j - i;
x = s[i];
}
i = j - 1; //i移动到j的前一位
}
cout << x << ' ' << max << endl;
}
}