2 条题解
-
2
最后一行直接从样例里复制就行了,根据出现次数最多的字母的出现次数决定行数。
#include<bits/stdc++.h> using namespace std; int a[27],maxa=0; int main(){ char c=getchar(); while(c!=EOF){ if(c>='A'&&c<='Z') ++a[c-'A'+1]; c=getchar(); } for(int i=1;i<=26;i++){ if(a[i]>maxa) maxa=a[i]; } for(int i=maxa;i>0;i--){ for(int j=1;j<=25;j++){ if(a[j]>=i) putchar('*'); else putchar(' '); putchar(' '); } if(a[26]>=i) putchar('*'); putchar('\n'); } printf("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"); return 0; }
-
-1
python版,先统计字母个数 然后推算每一行,去除行尾的空格。 最后一行输出字母
data = [0]*26 for i in range(4): line = input() for ch in line: if ch.isalpha(): idx = ord(ch)-ord("A") data[idx] += 1 max_len = max(data) for i in range(max_len): line = "#" for j in range(26): if data[j]<max_len-i: line += " " else: line += "* " line = line.strip()[1:] print(line) alpha = [chr(ord('A')+i) for i in range(26)] print(" ".join(alpha))
- 1
信息
- ID
- 594
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 71
- 已通过
- 45
- 上传者