华为机试练习
Posted zhang-qc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试练习相关的知识,希望对你有一定的参考价值。
1. 计算字符个数
输入 ABCDEF A 输出 1
#include <iostream> #include <cstring> using namespace std; int main(){ string str,res; getline(cin,str); //只能使用getline函数来读入直到换行符 char ch; cin>>ch; int size=str.length(),sum=0,flag=0; if(ch>=‘A‘&&ch<=‘Z‘) flag=1; //注意ascall码,A-Z 65-90; a-z 97-122;相差32 if(ch>=‘a‘&&ch<=‘z‘) flag=2; for(int i=0;i<size;i++) if(flag==1){ if(str[i]==ch||(str[i]-ch)==32) sum++; } else if(flag==2){ if(str[i]==ch||(ch-str[i])==32) sum++; } else if(str[i]==ch) sum++; cout<<sum<<endl; return 0; }
明明的随机数(注意的是测试有多组数,需要加while) //可以用set,或者是其他的排序,桶排序
#include <iostream> #include <algorithm> using namespace std; int main(){ int n; while(cin>>n){ if(n<0||n>1000) return 0; int inputArray[n]; for(int i=0;i<n;i++){ cin>>inputArray[i]; if(inputArray[i]<1||inputArray[i]>1000) return 0; } sort(inputArray,inputArray+n); for(int i=0;i<n-1;i++){ if(inputArray[i]!=inputArray[i+1]) cout<<inputArray[i]<<endl; } cout<<inputArray[n-1]<<endl; } return 0; }
#include <iostream> #include <set> using namespace std; int main(){ int n=0; while (cin>>n) { int a[1000],i=0; for (int i=0;i<n;i++) cin>>a[i]; set<int> num(a,a+n); //使用set容器直接初始化 for (set<int>::iterator it =num.begin();it!=num.end();it++){ cout<<*it<<endl; } } return 0; }
以上是关于华为机试练习的主要内容,如果未能解决你的问题,请参考以下文章