python蓝桥杯真题 单词分析
题目描述
[问题描述]
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这
个字母出现的次数。
[输入格式]
输入一行包含一个单词,单词只由小写英文字母组成。
[输出格式]
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
[样例输入]
lanqiao
[样例输出]
a
2
[样例输入]
longlonglongistoolong
o
6
代码及解析
# 单词分析
s = input() #读取字符串
ls= [0 for i in range(26)] #创建一个有26个0的列表,分别对应a~z记录字母的个数
for i in s: #遍历字符串
ls[ord(i)-97] += 1 #利用ord(),chr()函数,存26个字母的个数,a的ASCII码97
t = max(ls) #max()函数可以找出全数字列表的最大值
print(chr(ls.index(t)+97)) #输出最大个数的字母,也满足输出字典序最小
print(t) #输出最大个数
运行结果
#输入
thereisalwayshopeandwecandoit
#输出
a
4