蓝桥杯|蓝桥杯每日一题(30)单词分析(python)

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)

    推荐阅读