问题标题: 酷町堂:2824 字母统计

0
0

0
已采纳
朱文博
朱文博
中级守护
中级守护

第22行for循环不需要

0
0
黄硕
黄硕
高级守护
高级守护

2824   字母统计

题目描述 Description

现在有一行英文句子,里面包含大小写字母以及空格,字母个数(包含空格)不超过10万。
请你统计这个句子中每个字母出现的个数(不需要统计空格的个数)。
按照a~z的顺序输出。
第一行输出小写字母的个数
第二行输出大写字母的个数

输入描述 Input Description

输入一个整数n(n不超过100000),
第二行是总长度为n英文句子,包含大小写字母和空格

输出描述 Output Description

输出两行
第一行输出每个小写字母的个数空格隔开,a~z的顺序
第二行输出每个大写字母的个数空格隔开,A~Z的顺序

样例输入 Sample Input

 

17
I love Codingtang

样例输出 Sample Output

 

a 1 d 1 e 1 g 2 i 1 l 1 n 2 o 2 t 1 v 1
C 1 I 1

0
朱文博
朱文博
中级守护
中级守护

先定义字符串s和整数n,输入。
接着从s的0下标开始,到<s.size()遍历,用a[s[i]]++存起来。
再从'a'到'z'遍历,如果在a数组中存在的话(也就是if(a[i])),
cout<<char(i)<<" "<<a[i]<<" ";。
大写也一样,从'A'到'Z'遍历,存在的话,输出。
好的,没了。

0
黄硕
黄硕
高级守护
高级守护

还不对 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath> 
using namespace std;
int a[10010];
int main()
{
    string s;
    int n;
    cin>>n;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;
    }
    for(int i='a';i<='z';i++)
    {
        if(a[i]!=0)
        {
            for(int j=1;j<=n;j++)
            {
                cout<<char(i)<<" "<<a[i]<<" ";
            }
        }
    }
    cout<<endl;
    for(int i='A';i<='Z';i++)
    {
            if(a[i]!=0)
        {
            for(int j=1;j<=n;j++)
            {
                cout<<char(i)<<" "<<a[i]<<" ";
            }
        }
    }
    return 0;
}

 

0
黄硕
黄硕
高级守护
高级守护

还是不对 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath> 
using namespace std;
int a[10010];
int main()
{
    string s;
    int n;
    cin>>n;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;
    }
    for(int i='a';i<='z';i++)
    {
        if(a[i]!=0)
        {
                cout<<char(i)<<" "<<a[i]<<" ";

        }
    }
    cout<<endl;
    for(int i='A';i<='Z';i++)
    {
            if(a[i]!=0)
        {
                cout<<char(i)<<" "<<a[i]<<" ";
        }
    }
    return 0;
}

 

0
0
0
我要回答