题目详细(见图)
说实话,刚拿到题目还没有什么思路,然后看了看大佬们的题解分析后茅塞顿开,下面就详细介绍三种解题思路,每种方法都有一种截然不同的思考方式。
一. 方法一
详细讲解以注释形式写出
word = input()
a = 0
b = []
for i in word:
c = word.count(i) # 依次统计每个字母在所有单词中出现的次数
if c >= a:
a = c # 取字母出现次数最多的次数是多少
for j in word:
if word.count(j) == a: # 如果j=a 则j就是次数出现最多的字母
b.append(j)
b.sort() # 把列表b排序(从小到大)
print(b[0])
print(a)
要是不知道哪步操作是干什么的,可以在中间写入print输出看看结果(如下图)
二. 方法二
s = list(input())
m = sorted(sorted(s), key=lambda x: s.count(x), reverse=True)[0]
print(m, s.count(m), sep='\n')
代码 m = sorted(sorted(s), key=lambda x: s.count(x), reverse=True)[0] 的作用是找出字符串 s 中出现次数最多的字符。
具体解释如下:
sorted(s) 将字符串 s 转换为一个由字符组成的列表,并按照字符的字典序进行升序排序。 key=lambda x: s.count(x) 是一个函数,被传递给 sorted() 函数作为排序的关键字参数。这里使用 lambda 表达式定义了一个匿名函数,函数的输入参数为 x,表示列表中的每个字符。通过 s.count(x) 可以统计字符 x 在字符串 s 中出现的次数,将其作为排序的依据。 reverse=True 表示按降序排列。因为我们想要找到出现次数最多的字符,所以需要降序排列。 [0] 表示取排序后的列表中的第一个元素,即出现次数最多的字符。 最终,变量 m 中存储的是字符串 s 中出现次数最多的字符。
三. 方法三
详细讲解以注释形式写出
a = input()
b = [0] * 256 # 构建一个长度为256,每个元素都为0的列表
for i in a:
b[ord(i)] = b[ord(i)] + 1 # ord()函数把字母转为ASCII码 把字母ASCII码值所对应的b的列表的下表元素的值+1(字母每出现一次,该值加一)
print(chr(b.index(max(b)))) # chr()函数把ASCII值反转, index()函数找对象的索引位置
print((max(b)))