问题标题: 酷町堂:1171

0
0
已解决
颜咏春
颜咏春
中级光能
中级光能

1171   最大连续组长度(long)

 

Wrong Answer:60分

 

 

颜咏春的测评结果:

 

测试点#1测评结果 : Accepted时间 : 0ms
测试点#2测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#3测评结果 : Accepted时间 : 0ms
测试点#4测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#5测评结果 : Accepted时间 : 0ms
测试点#6测评结果 : Accepted时间 : 0ms
测试点#7测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#8测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#9测评结果 : Accepted时间 : 0ms
测试点#10测评结果 : Accepted时间 : 0ms

 

我的提交(cpp):

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
    int n,h=1,zs=1;
    cin>>n;
    char a[255];
    char zf=a[0];
    for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int j=0; j<n+1; j++)
    {
        if (a[j]==a[j+1]) h++;
        else if (h>zs)
        {
            zs=h;
            zf=a[j];
            h=1;
        }
    }
    cout<<zs<<endl;
    cout<<zf<<endl;
    return 0;

}

0
已采纳
杨舰中
杨舰中
高级守护
高级守护
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>

这些都不要

0
0
陆姗姗
陆姗姗
资深守护
资深守护

你的第二个for循环里的elseif那里写的不对

else if (h>zs) 的话是当a[j]!=a[j+1]&&h>zs的同时才执行下面的三个语句

但是是需要当a[j]!=a[j+1]的时候就要把h重置为1了,也就是h=1不管h是否大于zs的时候都要执行

0
栾峻岩
栾峻岩
初级天翼
初级天翼
for (int j=0; j<n+1; j++)

应是:

 for (int j=0;j<n-1;j++)

j=n-1时,就没有和他比较的字母了!!

你的循环里面应改为:

if (a[i]==a[i+1])
        {
            num++;
            if (num>max)// 打擂台,比大小!
            {
                max=num;// 替换
                max2=a[i];//这个字母别忘了替换哦!
            }
        }
        else
            num=1;

你的判断错误,如果不连续的话就应该为1.

还要打擂台(只要是连续就行)。

最后输出max,和max2,(或者按你的输出也行,我的max是次数,max2是字母(大写的),max2是char类型的)

0
0
臧启亚
臧启亚
初级光能
初级光能

核心代码

for (int i=0; i<n; i++)
        cin>>a[i];
    for (j=0; j<n-1; j++)
    {
        if (a[j]==a[j+1]) h++;
        else if (h>zs)
        {
            zs=h;
            zf=a[j];
            h=1;
        }
    }
    if(a[j]==a[n]) h++;
    else if (h>zs)
    {
        zs=h;
        zf=a[j];
        h=1;
    }
    cout<<zs<<endl;
    cout<<zf<<endl;

 

我要回答