📌  相关文章
📜  给定字符串中第 K 个最频繁的字符(1)

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

题目描述

给定一个字符串,找出其中第 K 个最频繁出现的字符,并返回该字符。

思路分析
  1. 遍历字符串,统计每个字符出现的次数;
  2. 将每个字符及其出现的次数存入字典中;
  3. 将字典按照值进行排序;
  4. 返回排序后第 K 个元素的键值对的键。
代码实现
def kth_most_frequent_char(s: str, k: int) -> str:
    """
    找出字符串中第 K 个最频繁出现的字符
    :param s: 给定字符串
    :param k: 第 K 个最频繁出现的字符
    :return: 第 K 个最频繁出现的字符
    """
    # 统计每个字符出现的次数
    char_count = {}
    for char in s:
        if char not in char_count:
            char_count[char] = 1
        else:
            char_count[char] += 1
    
    # 将字典按照值进行排序
    sorted_char_count = sorted(char_count.items(), key=lambda x: x[1], reverse=True)
    
    # 返回第 K 个元素的键值对的键
    return sorted_char_count[k - 1][0]
测试样例
assert kth_most_frequent_char('abbbccddddee', 1) == 'b'
assert kth_most_frequent_char('abbbccddddee', 2) == 'd'
assert kth_most_frequent_char('abbbccddddee', 3) == 'c'
assert kth_most_frequent_char('abbbccddddee', 4) == 'e'