- 【问题描述】
- 【输入形式】
- 【输出形式】
- 【样例输入】
- 【样例输出】
- 【样例说明】
- 【评分标准】
- 【题解】
编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并以柱状图的形式显示其出现次数。
【输入形式】在标准输入上输入一段英文文章(可能有一行,也可能有多行),在新的一行的开头输入ctrl+z键表示结束。
【输出形式】在屏幕上依次输出表示每个小写字母出现次数的柱状图(以"“字符表示柱状图,空白处用空格字符表示,某个小写字母出现多少次,就显示多少”"字符;柱状图的高度以出现最多的字母次数为准),在最后一行依次输出26个小写字母。
【样例输入】The computing world has undergone a
revolution since the publication of
The C Programming Language in 1978.
在输入的英文短文中,小写字母a出现了6次,所以其上输出了6个字符"*"。出现次数最多的是字母n,所以柱状图的高度为9个字符。字母j没有出现,所以其上都为空格字符。
【评分标准】共有5个测试点。
【题解】string = '' try: for line in iter(input, ''): string += line + 'n' except EOFError: pass letters = {} letter_list = [] for letter_asc in range(97, 123): letter = chr(letter_asc) letter_list.append(letter) letters[letter] = 0 for letter in letter_list: num = string.count(letter) letters[letter] = num occurCounts_list = [] for v in letters.values(): occurCounts_list.append(v) occur_max = max(occurCounts_list) result_list = [[0] * 26 for i in range(occur_max)] for i in range(len(occurCounts_list)): for k in range(occurCounts_list[i]): result_list[k][i] = '*' for i in range(len(result_list) - 1, -1, -1): for j in range(len(result_list[i])): if result_list[i][j] == 0: result_list[i][j] = ' ' print(result_list[i][j], end='') print() for i in letters.keys(): print(i, end='')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)