top1编程
← 返回题目
题解

【入门】词组缩写

1 条题解

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

    解题思路

    用变量记录当前是否在单词中,遇到每个新单词的第一个字母就转成大写并输出。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        char c;
        bool word = false;
        while (cin.get(c)) {
            // 空格表示一个单词结束,下一个字母就是新单词的开头。
            if (c == ' ') {
                word = false;
            } else if (!word) {
                // 小写字母减去'a'再加上'A',就能变成对应的大写字母。
                if (c >= 'a' && c <= 'z') c = c - 'a' + 'A';
                cout << c;
                word = true;
            }
        }
        // 每个单词只输出一次首字母。
        return 0;
    }
    

    复杂度分析

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

    • 1