题目的主要信息:
计算给定字符串中大写字母的个数。
方法一:
遍历一遍字符串,判断每个字符是否在A-Z,如果在,则count加1,表示大写字母的个数。 具体做法:
#include<iostream>
using namespace std;
int main(){
string str;
while(getline(cin,str)){//逐行输入
int count=0;
for(int i=0;i<str.size();i++){//统计大写字母的个数
if(str[i]>='A'&&str[i]<='Z'){
count++;
}
}
cout<<count<<endl;
}
return 0;
}
复杂度分析:
- 时间复杂度:,需要遍历一遍字符串。
- 空间复杂度:,只用了常数空间。
方法二:
用一个字符串存储所有的大写字母,遍历一遍输入的字符串,看看是否能在R中找到当前字符,如果能找到,则表示当前字母是大写字母,count加1。
具体做法:
#include<iostream>
using namespace std;
const string R="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int main(){
string str;
while(getline(cin,str)){//逐行输入
int count=0;
for(int i=0;i<str.size();i++){//统计大写字母的个数
if(R.find(str[i])!=R.npos){//判断当前字符是否在R中
count++;
}
}
cout<<count<<endl;
}
return 0;
}
复杂度分析:
- 时间复杂度:,需要遍历一遍字符串。
- 空间复杂度:,只用了常数空间。