原题链接:垂直直方图
解题思路:
将一个新的数组保存每一个字母对应的出现次数,在打印时候按行输出,先输出最大的那个字母,依次按行打印,打印后次数要 -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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复