Topic
试题 G: 单词分析【问题描述】
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
小蓝正在学习一门神奇的语言,【输入格式】
这门语言中的单词都是由小写英文字母组成,
有些单词很长,远远超过正常英文单词的长度。
小蓝学了很长时间也记不住一些单词,
他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,
帮助他找到出现最多的字母和这个字母出现的次数。
输入一行包含一个单词,单词只由小写英文字母组成。【输出格式】
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。【样例输入】
如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
lanqiao【样例输出】
a【样例输入】
2
longlonglongistoolong【样例输出】
o【评测用例规模与约定】
6
对于所有的评测用例,输入的单词长度不超过 1000。Solution_1 蓝桥杯算法题, 输入格式可参考蓝桥杯通用输入模板
首先将输入字符串
用a记录word中的字母出现的次数
之后不断遍历word中的字母
判断word中的字母出现的次数cou
将a与cou进行比较选择较大的值
这里选用if语句
为什么选择if判断语句而不是max函数
同时将较大的值对应的字母放置在data中
最后第一行打印字母
第二行打印字母出现的次数
Code_1
word = str(input())
a = 0
data = https://www.it610.com/article/[]for i in word:
cou = word.count(i)
if cou> a:
data = https://www.it610.com/article/[i]
a = couprint(data[0])
print(a)
Solution_2 第二种方法同样是运用count函数
但进行了优化
我们可以对a到z中每个字母在data中寻找出现的次数
之后与方法一中的思路一样
最后第一行打印字母
第二行打印字母出现的次数
【蓝桥杯|蓝桥杯每日一题(30)单词分析(python)】只要输入的字符的长度大于26
第二种方法效率显然就会更高
Code_2
word = str(input())
data = 'https://www.it610.com/article/abcdefghijklmnopqrstuvwxyz'
out = []
res = 0for i in data:
a = word.count(i)
if a > res:
out = [i]
res = aprint(out[0])
print(res)
推荐阅读
- 练习题|python类的继承,学习
- LFU (最不经常使用算法)缓存
- Python|十大最佳Python书籍[2021年更新]
- python|蓝桥杯每日一题(29)成绩统计(python)
- Python基础|五、Python基础(类与对象)
- 蓝桥杯————成绩统计
- paddle课程|[Paddle领航团python基础课程大作业一]英文词频的统计任务
- 欧拉定理与费马小定理
- 人工智能|驾驶员嗜睡分类 - 深度学习