预计阅读时间:5分钟
原题
描述
求一个字符串中最长的连续出现的字符,输出该字符及其出现次数。字符串中无空白字符(空格、回车和tab),如果这样的字符不止一个,则输出出现最早的字符。
输入
一行,一个不包含空白字符的字符串,字符串长度小于200。
输出
一行,输出最长的连续出现的字符及其最长的连续出现次数,中间以一个空格分开。
样例输入
aaaaadbbbbbcccccccdddddddddd
样例输出
d 10
思路
如果当前字符与前一个字符相等,那么count++,如果不相等且这个连续子串的长度大于上一个最长连续子串的话,就将长度和字符都记下来。注意,字符要记录上一个,count要重新设置为1。
代码
#include <iostream>
using namespace std;
int main()
{
string a;
getline(cin,a);
int len=a.length();
char ansf;
int ansl=0;
int count=1;
for(int i=1; i<len; i++)
{
if(a[i]==a[i-1])
{
count++;
}
else
{
if(count>ansl)
{
ansl=count;
ansf=a[i-1];
count=1;
}
count=1;
}
}
if(count>ansl)
{
ansl=count;
ansf=a[len-1];
}
cout<<ansf<<" "<<ansl<<endl;
return 0;
}
希望本博客对大家有所帮助