去掉多余空格也考虑了,为啥过不了啊QAQ
#include<bits/stdc++.h>
using namespace std;
int a[27],rowlast[405],lst;
int maxn;
int main(){
string s;
for(int i = 1;i <= 4;i++){
getline(cin,s);
for(int j = 0;j < s.size();j++){
if(s[j]< 'A' || s[j] > 'Z') continue;
a[s[j]-'A']++;
}
}
for(int i = 0;i <= 25;i++){
maxn = max(maxn,a[i]);
}
for(int i = 1;i <= maxn;i++){
for(int j = 25;j >= 0;j--){
if(a[j] >= i){
rowlast[i] = j;
//printf("rowlast[%d]=%d\n",i,j);
break;
}
}
}
for(int j = 25;j >= 0;j--){
if(a[j]){
lst = j;
break;
}
}
//print
for(int i = maxn;i >= 1;i--){
for(int j = 0;j <= rowlast[i];j++){
if(a[j] >= i) printf("*");
else printf(" ");
}
printf("\n");
}
for(int i = 0;i <= lst;i++){
if(a[i]) printf("%c",i+65);
else printf(" ");
}
return 0;
}