问题标题: 酷町堂:2661

0
0
已解决
张百川
张百川
新手光能
新手光能

#include<bits/stdc++.h>
using namespace std;
int n,cnt['z'+1],maxn=0;
string a;
int main()
{
    cin>>n;
    getline(cin,a);
    for(int i=0;i<a.size();i++)
    {
        cnt[a[i]]++;
    }
    for(int i=1;i<='z';i++)
    {
        if(cnt[i]>maxn)
        {
            maxn=cnt[i];
        }
    }
    for(int i=0;i<a.size();i++)
    {
        if(cnt[a[i]]==maxn)
        {
            cout<<char(a[i]);
        }
    }
    return 0;
}

为什么没有输出?????

急!!!


0
已采纳
邓千陌
邓千陌
新手守护
新手守护

在cin>>n后会有一个换行, 会被getline当做单独一行, 建议在cin后加上cin.ignore(), 或不用getline

0
邓千陌
邓千陌
新手守护
新手守护

等一下, 为什么要cin>>n, 题目中只输入一行自字符串啊?

0
邓千陌
邓千陌
新手守护
新手守护
//核心部分
    getline(cin, s);
    for(int i = 0; i < s.size(); ++i)
        cnt[s[i]]++;
    int M = *max_element(cnt, cnt + 256);
//  cout << M << endl;
    for(int i = 0; i < s.size(); ++i) {
        if(cnt[s[i]] == M && !b[s[i]]) {
            cout << s[i];
            b[s[i]] = true;
        }
    }

 

我要回答