A41782. 字符串中最长的连续出现的字符求一个字符串中最长的连续出现的字符,输出该字符及其出现次数。字符串中无空白字符(空格、回车和tab),如果这样的字符不止一个,则输出出现最早的字符。输入一行,一个不包含空白字符的字符串,字符串长度小于200。输出一行,输出最长的连续出现的字符及其最长的连续出现次数,中间以一个空格分开。样例输入aaaaadbbbbbcccccccdddddddddd样例输出d 10
填空题
困难
知识点
题目描述
字符串中最长的连续出现的字符
求一个字符串中最长的连续出现的字符,输出该字符及其出现次数。字符串中无空白字符(空格、回车和tab),如果这样的字符不止一个,则输出出现最早的字符。
输入
一行,一个不包含空白字符的字符串,字符串长度小于200。
输出
一行,输出最长的连续出现的字符及其最长的连续出现次数,中间以一个空格分开。
样例输入
aaaaadbbbbbcccccccdddddddddd
样例输出
d 10
参考答案
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
int t=1,ans=1,ls=s.size();
char a=s[0];
for(int i=1;i<ls;i++){
if(s[i]==s[i-1]) t++;//与前一个字符相同 t+1
else {
if(t>ans){//ans储存最大的t a储存ans对应的字符
ans=t;a=s[i-1];
}
t=1;
}
}
if(s[ls-1]==s[ls-2]){//处理最后两个字符相同的情况
if(t>ans){
ans=t;a=s[ls-1];
}
}
cout<<a<<" "<<ans;
return 0;
}
上一题
下一题