📜  门|门CS 2008 |问题 10(1)

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

门|门CS 2008 |问题 10

这道题目需要编写一个程序,统计一批字符串中每个字符出现的次数。具体要求如下:

输入格式
  • 第一行包含一个整数 $n$,表示字符串数量。
  • 接下来 $n$ 行,每行一个字符串。
输出格式
  • 对于每个字符串,按字符出现次数从小到大输出,格式为“字符:出现次数”。
代码实现

以下是 Python 3 的实现代码(也可使用 C++ 等其他语言):

n = int(input())

for i in range(n):
    s = input()
    count = {}
    for c in s:
        count[c] = count.get(c, 0) + 1
    result = sorted(count.items(), key=lambda x: (x[1], x[0]))
    print('Case %d:' % (i + 1))
    for c, cnt in result:
        print('%s:%d' % (c, cnt))
代码解析

首先读入字符串数量 $n$,接下来循环 $n$ 次,每次读入一个字符串。

对于每个字符串,我们使用一个字典 count 来统计每个字符出现的次数。循环遍历每个字符,如果在字典中未出现过,则将计数器初始化为 0;否则将计数器加一。

最后我们可以对字典中的项按值排序(从小到大),再按键排序(字典序),并输出每个字符及其出现次数。注意还需要在每组输出前输出一行 "Case x:"(x 表示序号)。

总结

这道题目考察了程序员的字符串处理能力,以及字典的使用方法。除了 Python 语言之外,其他语言也可以使用类似的方法实现字符出现次数的统计。