📅  最后修改于: 2023-12-03 15:37:16.058000             🧑  作者: Mango
本题来自于国际空间研究组织(ISRO)的2018年计算机科学考试。
给定一个字符串 s
,需要你找到其中出现次数最多的字符,并输出该字符。
输入的第一行包含一个整数 $T$,表示测试用例的数量。接下来 $T$ 行,每行包含一个字符串 s
,字符串的长度不超过 $10^4$。
对于每个测试用例,输出出现次数最多的字符。
如果有多个字符出现次数相同,输出字典序最小的那个。
3
geeksforgeeks
thisisasamplestring
letuscheck
e
s
c
我们可以通过 dictionary 来实现先遍历一遍字符串,得到每个字符出现的次数,再遍历一遍找出最大值就行。
def max_occurred_character(s):
char_dict = {}
for c in s:
if c not in char_dict:
char_dict[c] = 1
else:
char_dict[c] += 1
max_char = ""
max_count = 0
for c in char_dict:
if char_dict[c] > max_count:
max_count = char_dict[c]
max_char = c
elif char_dict[c] == max_count:
if c < max_char:
max_char = c
return max_char
# 测试
print(max_occurred_character("geeksforgeeks")) # e
print(max_occurred_character("thisisasamplestring")) # s
print(max_occurred_character("letuscheck")) # c