📅  最后修改于: 2023-12-03 14:56:43.857000             🧑  作者: Mango
本题为SP竞赛1的第9道问题,需要编写一个算法来计算一个字符串中出现次数最多的字符。
输入一个字符串,输出该字符串中出现次数最多的字符以及其出现次数。
"hello, world!"
l: 3
以下是一个基本的实现。其中,我们遍历字符串,使用一个哈希表来记录每个字符出现的次数,最后取出出现次数最多的字符和相应的次数。
def max_occurred_char(s: str) -> str:
char_count = {}
for char in s:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
max_char = None
max_occurence = 0
for char, count in char_count.items():
if count > max_occurence:
max_char = char
max_occurence = count
return f"{max_char}: {max_occurence}"
该算法的时间复杂度是$O(N)$,其中$N$是字符串的长度。空间复杂度为$O(K)$,其中$K$是字符串当中不同字符的数量。