初级启示者
4466 最长连续重复字符(longest)经验值:0
题目描述 Description
请统计输入的字符串中最大连续重复字符的个数, 要求统计找出给定字符串中哪些字符连续出现的次数最多,并且要统计这些字符一共连续出现了多少次。
例如:字符序列为 AAA222BBAAAaa,则在这个字符序列中,字符 A 和字符 2 连续出现的次数最多,都是 3 次。
输入描述 Input Description
共两行,第一行为字母序列中的字母个数 n(1≤N≤1000) ,
第二行为 n个字符组成的字符串序列。
输出描述 Output Description
共两行,第一行为最多连续出现次数最多的字符,若有多个用空格分隔,输出顺序为他们在字符串中的先后顺序。
第二行为连续出现重复的最大次数。
样例输入 Sample Input
13 AAA222BBAAAaa
样例输出 Sample Output
A 2 3
数据范围及提示 Data Size & Hint
1≤n≤1000 33≤字符数值即 ASCII 码≤126
初级光能
#include<assert.h>
{
assert(s!=NULL);
int temp_count,final_count=0;
p=s;
{
temp_count=0;
{
temp_count++;
else
break;
}
if(temp_count>final_count)
{
final_char=temp_char;
final_count=temp_count;
}
}
return final_count;
}
void main()
{
char s[]="aabbbcccc";
int count;
char c;
count=get_max_char_count(s,&c);
printf("%c is appeared %d timesn",c,count);
}
高级光能
for(int i=1; i<s.size(); i++){
if(s[i-1]==s[i])
f[i]=f[i-1]+1;
if(s[i-1]!=s[i])
f[i]=1;
}
for(int i=0; i<n; i++){
if(f[i]>=maxx && Tong[s[i]]==0){
maxx=f[i];
}
}
for(int i=0; i<n; i++){
if(f[i]>=maxx && Tong[s[i]]==0){
Biger[++k]=s[i];
Tong[s[i]]=1;
}
}
for(int i=1; i<=k; i++){
cout<<Biger[i]<<" ";
}