📅  最后修改于: 2023-12-03 15:13:35.756000             🧑  作者: Mango
给定一个字符串 s
,其中所有字符都是小写字母。要求按照字典顺序对字符串进行排序,并返回排序后第 K
个最小字符的频率。
为了解决这个问题,我们可以按如下步骤进行操作:
使用一个字典 freq
来统计字符串中每个字符的出现频率。
freq = {}
for char in s:
if char in freq:
freq[char] += 1
else:
freq[char] = 1
对字典 freq
中的字符按照字典顺序进行排序。
sorted_freq = sorted(freq.items(), key=lambda x: x[0])
遍历排序后的字符频率列表,并计算第 K
个最小字符出现的次数。
count = 0
for char, freq in sorted_freq:
count += freq
if count >= K:
return freq
def kthSmallestFrequency(s: str, K: int) -> int:
freq = {}
for char in s:
if char in freq:
freq[char] += 1
else:
freq[char] = 1
sorted_freq = sorted(freq.items(), key=lambda x: x[0])
count = 0
for char, freq in sorted_freq:
count += freq
if count >= K:
return freq
return 0 # 如果 K 超出字符串长度,返回 0
s = 'aabbcc'
K = 3
result = kthSmallestFrequency(s, K)
print(result) # 输出 2
在上面的示例中,输入的字符串为 'aabbcc'
,按照字典顺序排序后为 'aabbcc'
。第 3 个最小字符是 'b'
,而它的频率为 2。因此,函数返回结果为 2。