问题标题: 请问酷町堂1171怎么做

0
0

0
已采纳
张睿杰
张睿杰
初级天翼
初级天翼

您好 刘振波

首先是定义

 

 

string s;

 

int i,num=0,max=0,n;

 

char f;

然后是输入 额,直接输入n和s

接下来就是循环了

for (i=0;i<n;i++)

{

num=1;

while (s[i]==s[i+1])

{

num++;

i++;

}

if (num>max)

{

max=num;

f=s[i];

}

}

这个部分很长哦

最后一步只要输出就行了,太简单,不发给你了

输出max和f就行了

 

1
颜咏春
颜咏春
中级光能
中级光能
struct haha{
    int b=0,xh;
    string t;
}c[122];
int cmp(const haha& a,const haha& b)
{
    if(a.b!=b.b) return a.b>b.b;
    return a.xh<b.xh;
}
    string a,max_str;
    int n,max_ans,key,j=0;
    cin>>n;
    if(n==0) return 0;
    cin>>a[0];
    for(int i=1;i<n;i++){
        cin>>a[i];
        if(a[i]==a[i-1]) {
            c[j].b++;
            c[j].t=a[i];
            if(i==n-1) c[j].b++;
            c[j].xh=j;
        }
        else if(c[j].b>=1){
            c[j].b++;
            j++;
        }
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;

 

0
栾峻岩
栾峻岩
初级天翼
初级天翼
if (a[i]==a[i+1])
        {
            num++;
            if (num>max)
            {
                max=num;
                max2=a[i];
            }
        }
        else
            num=1;

输出max和max2

 

栾峻岩在2018-02-01 19:40:03追加了内容

别忘了头文件:

#include <string>

0
杨陈卓
杨陈卓
新手天翼
新手天翼

核心

    for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;
    }
    cout<<zs<<endl;
    cout<<zf<<endl;

 

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

以下ans为最多次数的字母,ansnum为最多次数,num为当前字母的次数,c为当前字母

对字母序列的处理:

① 对于第一个字母,记录下来为ans,此时数量为1

② 对于后面的每个字母,如果和前一个字母相同,则num++,如果和前一个字母不相同,则判断现在已经记录的num的数量和当前的ansnum的比较,如果num>ansnum的话则把ans替换为c[i-1],ansnum替换成num,替换后把num的值赋值为1(num=1的过程需要仔细想想为什么)

③ 当i==n的时候再次判断num和ans的关系,和上面的比较的过程一样,如果num>ansnum的话则替换,否则不用替换

0
欧阳语聪
欧阳语聪
资深守护
资深守护
for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;
    }
0
欧阳语聪
欧阳语聪
资深守护
资深守护
for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;
    }
0
欧阳语聪
欧阳语聪
资深守护
资深守护
for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;
    }
0
时梓繁
时梓繁
修练者
修练者
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 i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;
    }
    cout<<zs<<endl;
    cout<<zf<<endl;
0
薛新奥
薛新奥
新手光能
新手光能
asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasd

 

我要回答