解题思路:
将一个新的数组保存每一个字母对应的出现次数,在打印时候按行输出,先输出最大的那个字母,依次按行打印,打印后次数要 -1
注意事项:
只有打印'* '的时候,需要减1,否则是不减的
参考代码:
# 打印直方图 #s = "THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.THIS IS AN EXAMPLE TO TEST FOR YOURHISTOGRAM PROGRAM.HELLO!" # 获取字符串的输入 s = "" for i in range(1, 4 + 1): s+=input() #创建一个长度为26的全0数组 count = [0] * 26 # for i in range(len(s)): if 'A' <= s[i] <= 'Z': count[ord(s[i])-ord('A')] += 1 max_high = max(count) for i in range(0, max_high): for j in range(len(count)): if count[j] != max_high: print(' ',end='') else: print('* ',end='') count[j]-=1 print() max_high -= 1 for i in range(ord('A'), ord('Z')+1): print(chr(i),end=' ')
0.0分
0 人评分
2^k进制数 (C++代码)使用递归方法浏览:736 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:590 |
九宫重排 (C++代码)浏览:1410 |
C语言程序设计教程(第三版)课后习题9.4 (Java代码)浏览:1446 |
【绝对值排序】 (C语言代码)浏览:832 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:641 |
分糖果 (C++代码)浏览:1537 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:603 |
【亲和数】 (C语言代码)浏览:541 |
1128题解(返回值为数组的情况)浏览:571 |