请编写程序,找出一段给定文字中出现最频繁的那个英文字母。

输入格式:

输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。

输出格式:

在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。

输入样例:

This is a simple TEST.  There ARE numbers and other symbols 1&2&3...........
 

输出样例:

e 7

解题思路:

1、将输入的字符串全部转换为小写,然后顺序扫描字符,将字符和出现次数的对应用字典存储。

2、判断当前字符是否出现过,如果出现过:就将次数+1;如果没出现过:就再字典里添加该键并将值赋为0

3、全部扫描完之后对统计的字典进行按值排序,首先将键和值对调顺序,将值按从大到小排序。

4、找到值最大,键ASCII码最小的元素输出

be_str = input()
low_str = be_str.lower() # 将字符全部转换为小写
count_dict = {} for s in low_str:
if s >= 'a' and s <= 'z':
if s in count_dict.keys():
count_dict[s] += 1
else:
dic1 = {s: 1}
count_dict.update(dic1)
# 按值排序
result = zip(count_dict.values(), count_dict.keys())
r = sorted(result, reverse=True) # 按value值倒序排序
pos = 0
for x in r:
if x[0] == r[0][0]:
pos += 1
# print(r)
print(r[pos-1][1], r[pos-1][0])

最新文章

  1. Binder In Native
  2. Kettle6使用
  3. Intellij Idea使用技巧、快捷键
  4. javascript代码复用模式
  5. js代码的一些小技巧
  6. C# CacheHepler Class
  7. OpenCV+QT开发环境(一):Windows环境
  8. #event.initMouseEvent
  9. “Options模式”下的配置是如何绑定为Options对象
  10. linux shell 不同进制数据转换(二进制,八进制,十六进制,base64) (转)
  11. Linux通过编辑器vi使用介绍
  12. MySQL二进制日志binlog简单使用
  13. UE4 Hello World 创建第一个UE4工程
  14. python爬虫教程实践1——安装scrapy
  15. How to proof RSA
  16. Css实现元素的垂直居中
  17. Oracle使用par文件进行全库导入导出
  18. 关于Sentry(转)
  19. Machine.config与web.config
  20. leetcode149

热门文章

  1. JZ-040-数组中只出现一次的数字
  2. SQL Server的Linked Servers
  3. 译&lt;容器网络中OVS-DPDK的性能&gt;
  4. C#学习路线和感想
  5. 总结一下Java基础知识
  6. CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面
  7. ElasticSearch7.3 学习之Mapping核心数据类型及dynamic mapping
  8. AOP源码解析之二-创建AOP代理前传,获取AOP信息
  9. BBS项目补充知识(后台文章展示功能)
  10. 与Flash 中国特供版斗智斗勇