描述
请统计输入的字符串中最大连续重复字符的个数,要求统计找出给定字符串中哪些字符连续出现的次数最多,并且要统计这些字符一共连续出现了多少次。
例如:字符序列为:A/A//A2/2//2B//BA/A/\A//a//a(斜杠是分隔),则在这个字符序列中,字符A和字符2连续出现的次数最多,都是3次。
输入
共两行:
第一行为字母序列中的字母个数n(1<=n<=1000)
第二行为n个字符组成的字符串序列。
输出
共两行:
第一行为最多连续出现次数最多的字符以及该字符子串在字符串内的出现次数,若有多个用空格分隔,输出顺序为他们在字符串中的先后顺序。
第二行为连续出现重复的最大次数。
输入样例 1
13
A/A//A2/2//2B//BA/A///A//a//a (斜杠是分隔)
输出样例1
A 2
3
提示
数据范围: 1≤n≤1000 33≤字符数值即 ASCII 码≤126
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i;
cin>>n;
string s;
cin>>s;
int Cnt=0;
int mC=0;
int mC1=0;
string mCr;
int cCt=1;
for(i=1;i<n;i++){
if(s[i]==s[i-1]) cCt++;
else{
if(cCt>mC){
mC=cCt;
mCr=s[i-1];
}
cCt=1;
}
}
if(cCt>mC){
mC=cCt;
mCr=s[n-1];
}
for(i=1;i<n;i++){
Cnt++;
if(s[i]!=mCr[i]){
Cnt--;
}
}
cout<<mCr<<" "<<Cnt<<endl;
cout<<mC;
return 0;
}
【以下回答由 GPT 生成】
我可以通过以下步骤来解决该问题:
从输入中读取字符序列的长度n和字符序列s。
初始化变量Cnt、mC、mC1、mCr和cCt,分别用于计算字符出现次数、最大连续出现次数、当前连续出现次数、记录最大连续出现字符和当前连续出现次数。
使用循环遍历字符序列,从第二个字符开始。
检查当前字符是否与前一个字符相同,若相同则更新当前连续出现次数。
若当前字符与前一个字符不同,则将当前连续出现次数与最大连续出现次数比较,若大于最大连续出现次数,则更新最大连续出现次数和最大连续出现字符。
循环结束后,还需要检查最后一个字符的连续出现次数。
计算最大连续出现字符的子串出现次数,遍历字符序列,每次检查当前字符是否与最大连续出现字符的对应位置的字符相同,若不同则不计入子串出现次数。
输出最大连续出现字符和子串出现次数,再输出最大连续出现次数。
程序结束。
我希望这样的解决方案能够帮助你解决问题。如果你还有其他问题,请随时告诉我。
【相关推荐】