1 条题解

  • 0
    @ 2026-10-18 18:33:58

    G3026 [GESP202606 三级] 字符转换 题解

    知识点:字符分类、大小写转换、字符串。

    解题思路

    按字符类别转换:数字变成*,小写转大写,大写转小写,逐个输出。

    为什么正确

    三类分支在题目输入范围内互斥且完备,每个字符独立转换。

    易错点

    不要先统一转换全串导致后续判断类别错误;字符输出而非其编码值。

    复杂度

    时间O(n),空间O(n)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n;
        string s;
        cin>>n>>s;
        for(char c:s)cout<<(isdigit(c)?'*':islower(c)?char(toupper(c)):char(tolower(c)));
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用6个自行生成的测试点。

    • 1

    信息

    ID
    694
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者