0
已解决
张睿杰
初级天翼
初级天翼
今天老师在课堂上让同学们做了一个有趣的游戏。老师叫小卡卡在黑板上任意写下一串由26个英文字母组成的字母序列。然后,老师要求同学们在最短的时间里找出这个字母序列中哪个字母连续出现的次数最多,并且指出该字母一共连续出现了多少次,最先得到正确答案的同学将赢得游戏。 例如:小卡卡写下的字母序列为ABBAAAACC,其中左边起第1个字母A没有连续出现。第二字母B连续出现了2次。第4个字母A连续出现了4次,第8个字母C连续出现了两次。则在这个字母序列中,第4个字母A连续出现的次数最多,共4次。 请大家编程解决这个问题。
输入描述 Input Description
共两行,第一行为字母序列中的字母个数N(1<N<100),第二行为字母序列。
输出描述 Output Description
共两行,第一行为最多连续出现的次数,第二行为连续出现次数最多的字母。(相同的次数输出最先出现的字母)。
样例输入 Sample Input
9
ABBAAAACC
样例输出 Sample Output
4
A
数据范围及提示 Data Size & Hint
数据范围:
50%的数据 1<N<50。
100%的数据 1<N<100。
100程序必采纳
0
已采纳
王子凡
高级光能
高级光能
for (i=0;i<s.size();i++)
{
num=1;
while (s[i]==s[i+1])//累计连续字母的长度
{
num++;
i++;
}
if (num>max)//判断是不是最优解
{
max=num;
f=s[i];
}
}
核心代码
0
夏子健
初级光能
初级光能
num=i;
while(a[i]==a[num])
{
num++;
}
if(num-i>max)
{
max=num-i;
x=a[i];
num=0;
}
//每次把当前位置记录,跳出循环时得出num-i为序列长度
0
0
0
0