top1编程
← 返回题目
题解

【入门】统计字母出现次数

1 条题解

  • 0
    @ 2026-7-30 1:34:18

    解题思路

    遇到句号停止,使用 26 个计数位置统计出现过的小写字母。

    参考代码

    // 先读入题目给出的数据。
    // 再按照题目要求进行计算。
    // 最后按规定格式输出答案。
    #include <iostream>
    using namespace std;
    int main() {
        char c; int a[26] = {};
        // 读到句号结束,只统计小写字母。
        while (cin.get(c) && c != '.') if (c >= 'a' && c <= 'z') a[c - 'a']++;
        // 第一行输出出现过的字母,第二行输出对应次数。
        for (int i = 0; i < 26; i++) if (a[i]) cout << char('a' + i); cout << endl;
        for (int i = 0; i < 26; i++) if (a[i]) cout << a[i]; cout << endl;
        return 0;
    }
    

    复杂度分析

    排序需要 O(n^2) 时间;其余循环按照实际遍历次数计算。代码使用固定大小数组,额外空间复杂度为 O(1) 或 O(n)。

    • 1