1 条题解

  • 0
    @ 2026-6-19 10:30:30

    📝 题目大意

    给定一个仅包含小写英文字母的字符串 SS,将其每个字符转换为对应的大写字母后输出。

    💡 解题思路

    1. 题目分析SS 只包含小写字母,长度 1S1001 \le |S| \le 100,是非常简单的入门题。没有隐藏条件或陷阱。
    2. 算法推导:ASCII 码中,小写字母 'a' 的值为 9797,大写字母 'A' 的值为 6565,两者相差 3232。因此只需遍历字符串 SS 的每个字符 s[i]s[i],输出 s[i]32s[i] - 32 即可得到对应的大写字母。标准代码中使用 printf("%c", s[i] - 32) 逐个输出字符。
    3. 边界与细节:输入保证全是小写字母,无需额外判断。也可以使用 C++ 标准库的 toupper() 函数实现,但标准代码的方法更为直接。

    ⏱️ 复杂度分析

    • 时间复杂度O(n)O(n),其中 nn 为字符串长度,需要遍历每个字符。
    • 空间复杂度O(1)O(1),仅使用一个字符串变量存储输入,无需额外空间。

    💻 标准代码 (C++)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main () {
        string s;
        cin >> s;  // 读入小写字母字符串
        // 遍历每个字符,小写字母 ASCII 值比大写字母大 32,减去 32 即转换为大写
        for (int i = 0; i < s.size(); i++) printf("%c", s[i] - 32);
        return 0;
    }
    
    • 1

    信息

    ID
    689
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者