题解 | #计算某字母出现次数#

计算某字母出现次数

http://www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1

方法一:
#include <bits/stdc++.h>
using namespace std;
int main(){
string str;
// cin>>str;//错误二:使用cin来输入含有空格的字符串,
// 当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。
// 一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。碰到空格就断掉了,
// 应该用getline
getline(cin, str);
char alpha;//错误一:单个字母写成char型,别写成string,char的ascll码也可加减32
cin>>alpha;
int num = 0;

// unordered_map<string, int> hashmap;
for(int i=0;i<str.size();i++){
if(str[i]==alpha||str[i]+32==alpha||str[i]-32==alpha){
num++;
}
}
cout<<num;
return 0;
}

方法二:哈希(不过此题用hash没有优势,只是多了一个思路而言,其实还不如方法一)
int main(){
string str;
getline(cin, str);
char alpha;
cin>>alpha;
unordered_map<char, int> hashmp;
for(int i=0;i<str.size();i++){
if(isalpha(str[i])){
if(hashmp.count(str[i])){
hashmp[str[i]]++;
}
else{
hashmp[str[i]]=1;
}
}
}
if(alpha >= 97){
cout<<hashmp[alpha]+hashmp[alpha-32];
}
else{
cout<<hashmp[alpha]+hashmp[alpha+32];
}

return 0;

}

全部评论

相关推荐

黑皮白袜臭脚体育生:简历条例统一按使用了什么技术实现了什么功能解决了问题或提升了什么性能指标来写会好些,如使用布隆过滤器实现了判断短链接是否存在,大大提升了查询速度
点赞 评论 收藏
分享
许愿ssp的咸鱼很不想泡池子:import python as pyhton
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务