XJOI1级19段 c++ 统计字符

统计字符

时间:1s 空间:256M

题目描述:
给你一篇小写的英文文章,你需要统计每种字母各出现了几次。

输入格式:
输入若干行,处理到文件结尾。

输出格式:
输出若干行,从小到大输出每种字符的出现次数,没有出现的字符不用输出。

约定:
字符总个数<=100000

img

代码(超时):

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
 
int main()
{
    string a;
    int s[127]={0};
    while(cin>>a){
        for(int i=0;i<a.length();i++){
            for(int j=97;j<97+26;j++){
                if(a[i]==j) s[j]++;
            }
        }
        for(int i=97;i<97+26;i++){
            if(s[i]) cout<<char(i)<<":"<<s[i]<<endl;
        }
    }
    
    return 0;
}

if(a[i]==a[j])
是a[i] == j
s数组要初始化,改为 int s[127] = {0};

太多循环了