1 条题解

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

    G3007 [GESP202403 三级] 字母求和 题解

    知识点:字符编码、字符串遍历、累加。

    解题思路

    逐字符处理:小写字母贡献其字母序号1到26,大写字母贡献ASCII编码的相反数,将贡献累加。

    为什么正确

    每个字符的映射与题面规则一致,逐项求和等于整个字符串的分数。

    易错点

    大写字母不是负的字母序号,而是负ASCII值;大小写规则不同。

    复杂度

    时间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,sum=0;
        string s;
        cin>>n>>s;
        for(char c:s)sum+=c>='a'?c-'a'+1:-int(c);
        cout<<sum;
    }
    

    说明

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

    • 1

    信息

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