题解
字符数量之差
1 条题解
-
0
解题思路
题目给出一个只包含数字和小写字母的字符串,让我们算出字母个数减去数字个数的结果。
思路很简单:把字符串从头到尾扫描一遍:
- 如果字符在
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