top1编程
← 返回题目
题解

【入门】统计单词个数

1 条题解

  • 0
    @ 2026-7-30 1:33:44

    解题思路

    从空格分隔出的状态变化中统计每个单词的第一次出现。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        char c;
        bool in = false;
        int cnt = 0;
        while (cin.get(c)) {
            // 空格表示单词结束,接下来要等待下一个单词。
            if (c == ' ') in = false;
            else if (!in) {
                // 从非单词状态进入单词状态时,单词数加一。
                cnt++;
                in = true;
            }
        }
        // 连续多个空格不会重复统计同一个单词。
        cout << cnt;
        return 0;
    }
    

    复杂度分析

    代码只使用了简单变量、循环和字符串。设输入长度为 n,时间复杂度为 O(n^2)(若有嵌套枚举则按实际循环计算),额外空间复杂度为 O(n)。

    • 1