📌  相关文章
📜  国际空间研究组织 | ISRO CS 2018 |问题 50(1)

📅  最后修改于: 2023-12-03 15:37:16.058000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2018 |问题 50

本题来自于国际空间研究组织(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