题解
统计大写字母的个数
1 条题解
-
0
解题思路
题目要求统计一行字符串里大写字母的个数。这一行字符串里可能有空格,所以我们用
getline(cin, s)把整行读进来。怎么判断一个字符是不是大写字母呢?在 ASCII 码表里,大写字母
A到Z是连续排列的,A的编码是 65,Z的编码是 90。所以只要满足c >= 'A' && c <= 'Z',这个字符就是大写字母。我们用一个计数器
cnt,从 0 开始。遍历字符串的每个字符,遇到大写字母就把cnt加 1,最后输出cnt就是答案。拿样例
There Are Five Apples来说:里面的大写字母有T、A、F、A,一共 4 个,所以输出 4。参考代码
// 用途:统计字符串中大写字母的个数 #include <iostream> #include <string> using namespace std; int main(){ string s; getline(cin,s); // 一行可能含空格,用getline读整行 int cnt=0; for(char c:s) if(c>='A' && c<='Z') cnt++; // 判断是否是大写字母 cout<<cnt<<endl; return 0; }复杂度分析
- 时间:把字符串从头到尾扫描一遍,时间复杂度是 O(n),n 是字符串长度(不超过 100)。
- 空间:只用了一个字符串和一个计数器,空间复杂度是 O(1)。
- 1