题目描述
给出一些字符串,总长度不超过 1000,统计其中大写字母的个数,并按照给定样例格式输出。
输入
一堆字符串,每两个字符串之间可能用空格、换行隔开。
输出
参照样例输出柱状统计图,每个 ∗ 表示出现一次,注意每行不要有多余的空格。
样例输入
ABC ABC.DEF()G GCC XY
354342aaaCaa aaaaaaaabcdbcd
样例输出
*
*
*
* * * *
* * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
#include<iostream>
#include <string>
using namespace std;
string a;
int num[128] = {0};
int main() {
while (cin >> a) {
for (int i = 0; i < a.size(); i++) {
num[a[i]]++;
}
}
int mmax = 0;
for (int i = 'A'; i <= 'Z'; i++) {
mmax = max(mmax, num[i]);
}
for (int i = 0; i < mmax; i++) {
int last = -1;
for (int j = 'A'; j <= 'Z'; j++) {
if (num[j] >= mmax - i) last = j;
}
for (int j = 'A'; j <= last; j++) {
if (num[j] >= mmax - i) {
cout << "*";
} else {
cout << " ";
}
if (j != last) cout << " ";
}
cout << endl;
}
for (int i = 'A'; i <= 'Z'; i++) {
if (i != 'A') cout << " ";
cout << (char)i;
}
return 0;
}