📜  算法测验| SP竞赛1 |问题9(1)

📅  最后修改于: 2023-12-03 14:56:43.857000             🧑  作者: Mango

算法测验| SP竞赛1 |问题9

简介

本题为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$是字符串当中不同字符的数量。