字母频率统计柱状图2

【问题描述】

编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并按照从大到小的顺序以柱状图的形式显示其出现次数,出现次数为0的不输出。

 

【输入形式】

在标准输入上输入一段英文文章(可能有一行,也可能有多行),在新的一行的开头输入ctrl+z键或者Ctr + D键表示结束。

 

【输出形式】

在屏幕上按照从大到小的顺序输出表示每个小写字母出现次数的柱状图(以#字符表示柱状图,空白处用空格字符表示,某个小写字母出现k次,就显示k个#字符;柱状图的高度以出现最多的字母次数为准;出现次数为0的不输出),不输出相对应的小写字母。若文章中没有小写字母,则什么都不输出。

 

【样例输入】

The computing world has undergone a 

revolution since the publication of

The C Programming Language in 1978.

 

 

【样例输出】

#                   

###                 

####                

######              

########            

##########          

#############       

################    

####################

 

【样例说明】

字母b、f、v和w只出现了一次,所以最右方只有一个#的柱状表示这四个字母的出现次数。出现次数最多的是字母n,所以柱状图的高度为9个字符,在图的最左边。没有出现的字母,其出现次数忽略,没有显示。注意:除了最高的柱状图外,其它用#表示的柱状上方的空白处是用空格符填充。 

 

char_list = [0 for i in range(26)]
try:
    while True:
        inputLine = input().replace(' ', '')
        for i in range(len(char_list)):
            char_list[i] += inputLine.count(chr(97 + i))
            #print(char_list)
except EOFError:
    pass
max_count = max(char_list)
for i in range(max_count, 0, -1):
    for j in range(26):
        if char_list[j] >= max_count:
            print('#', end='')
    print()
    max_count -= 1
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值