📅  最后修改于: 2023-12-03 14:50:47.555000             🧑  作者: Mango
该问题是一道编程问题,考察了程序员对于字符串操作、字典操作和循环处理的掌握程度。
给定一个字符串,需要统计其每个字符出现的次数,并输出出现次数最多的前3个字符及其出现次数。
一个字符串,长度不超过1000。
输出三行,每行均为一个字符和它在原字符串中出现的次数,每行的内容格式为“char frequency”,按照出现次数逆序排序,如果出现次数相同时,按照字母的字典序升序排序。
输入:
abbbccddee
输出:
b 3
d 2
c 2
我们可以通过遍历整个字符串,使用一个字典来记录每个字符出现的次数。遍历完毕后,我们将字典按照出现次数逆序排序,如果出现次数相同则按照字典序排序,最后输出前三个字符及其出现次数即可。
具体实现方法可以参考以下代码:
# 输入字符串
s = input()
# 统计字符出现次数
freq = {}
for c in s:
if c in freq:
freq[c] += 1
else:
freq[c] = 1
# 按照出现次数逆序排序,如果出现次数相同则按照字典序排序
sorted_freq = sorted(freq.items(), key=lambda x: (-x[1], x[0]))
# 输出前三个字符及其出现次数
for i in range(min(3, len(sorted_freq))):
print(sorted_freq[i][0], sorted_freq[i][1])
本题实现较为简单,但需要注意排序规则的描述,以保证输出格式的正确性。在实际开发中,字符串操作、字典操作和循环处理是常见的编程技巧,掌握这些技巧可以使得程序员的代码更加高效和简洁。