PAT B1042 字符统计
2024-09-17 22:36:26
请编写程序,找出一段给定文字中出现最频繁的那个英文字母。
输入格式:
输入在一行中给出一个长度不超过 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])
最新文章
- Binder In Native
- Kettle6使用
- Intellij Idea使用技巧、快捷键
- javascript代码复用模式
- js代码的一些小技巧
- C# CacheHepler Class
- OpenCV+QT开发环境(一):Windows环境
- #event.initMouseEvent
- “Options模式”下的配置是如何绑定为Options对象
- linux shell 不同进制数据转换(二进制,八进制,十六进制,base64) (转)
- Linux通过编辑器vi使用介绍
- MySQL二进制日志binlog简单使用
- UE4 Hello World 创建第一个UE4工程
- python爬虫教程实践1——安装scrapy
- How to proof RSA
- Css实现元素的垂直居中
- Oracle使用par文件进行全库导入导出
- 关于Sentry(转)
- Machine.config与web.config
- leetcode149
热门文章
- JZ-040-数组中只出现一次的数字
- SQL Server的Linked Servers
- 译<;容器网络中OVS-DPDK的性能>;
- C#学习路线和感想
- 总结一下Java基础知识
- CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面
- ElasticSearch7.3 学习之Mapping核心数据类型及dynamic mapping
- AOP源码解析之二-创建AOP代理前传,获取AOP信息
- BBS项目补充知识(后台文章展示功能)
- 与Flash 中国特供版斗智斗勇