华为机试-计算某字母出现次数(较难)
计算某字母出现次数
http://www.nowcoder.com/questionTerminal/a35ce98431874e3a820dbe4b2d0508b1
题目描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写。
题目只问了字母的个数,比较简单,for循环遍历计数
考虑大小写问题就行
#include<iostream>
#include<unordered_map>
using namespace std;
int main(){
string str;
getline(cin,str);
char ch; cin>>ch;
int x='a'-'A';
int count=0;
if(ch>='a'&&ch<='z'){//如果是小写
for(auto i:str)
if(i==ch||i==(ch-x))//搜索本身和大写形式
count++;}
else{//如果是大写
for(auto i:str)
if(i==ch||i==(ch+x))//搜索本身和小写形式
count++;}
cout<<count;
return 0;
}看到题目提示哈希表 也可以 但没必要吧
