top1编程
← 返回题目
题解

字符数量之差

1 条题解

  • 0
    @ 2026-8-5 15:42:10

    解题思路

    题目给出一个只包含数字和小写字母的字符串,让我们算出字母个数减去数字个数的结果。

    思路很简单:把字符串从头到尾扫描一遍:

    • 如果字符在 a 到 z 之间,就是字母,字母计数器 a 加 1;
    • 如果字符在 0 到 9 之间,就是数字,数字计数器 b 加 1。

    最后输出 a - b 就是答案。

    拿样例 hello123456 来说:hello 是 5 个字母,123456 是 6 个数字,5 - 6 = -1,所以输出 -1。注意结果可能是负数,直接输出就行。

    参考代码

    // 用途:输出字符串中字母个数与数字个数的差
    #include <iostream>
    #include <string>
    using namespace std;
    int main(){
        string s;
        cin>>s; // 字符串只含数字和小写字母,不含空格
        int a=0,b=0; // a计字母个数,b计数字个数
        for(char c:s){
            if(c>='a' && c<='z') a++;
            else if(c>='0' && c<='9') b++;
        }
        cout<<a-b<<endl; // 字母个数减数字个数
        return 0;
    }
    

    复杂度分析

    • 时间:把字符串从头到尾扫描一遍,时间复杂度是 O(n),n 是字符串长度(不超过 100)。
    • 空间:只用了两个计数器,空间复杂度是 O(1)。
    • 1