# 华为2019届校招笔试题

Interview 专栏收录该内容
2 篇文章 0 订阅

1.

#include<iostream>
#include<string>
#include<algorithm>
#include<unordered_set>

using namespace std;

int main()
{
string instr,outstr;
unordered_set<char>  sc;
getline(cin,instr);
for(auto c:instr)
{
if(sc.find(c)==sc.end())
{
sc.insert(c);
outstr.append(1,c);
}
}
cout<<outstr<<endl;
return 0;
}


2

#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;

int main()
{
vector<pair<int,int>> time{{12,13},{13,14},{14,15},{15,16},
{16,17},{17,18},{18,19},{19,20}};
vector<pair<int,int>> people;
map<pair<int,int>,int> result;
int a,b;
while(true)
{
cin>>a;
if(cin.get()==','){
cin>>b;
if(a==-1&&b==-1){
break;}
people.push_back(make_pair(a,b));
}
}
for(pair<int,int> pa:people)
{
for(pair<int,int> t:time)
{
if(pa.first<=t.first&&pa.second>=t.second)
{
++result[t];
}
}
}
for(pair<pair<int,int>,int> re:result)
{
cout<<'['<<re.first.first<<','<<re.first.second<<')'<<':'<<re.second<<endl;
}
return 0;
}


3.

代码如下：

#include<iostream>
#include<algorithm>
#include<stack>
#include<vector>
#include<string>
using namespace std;

int main()
{
stack<int> num;
stack<char> ops;
string str;
getline(cin,str);
int result;
int i=0;
for(;i<str.size();)
{
int t=0;
while(str[i]==' ') {
++i;
++t;
}
if(t>1){  //' ' is more
result=-1;
break;}
if(str[i]!='.'&&str[i]<'0'||str[i]>'9') {
if(str[i]==')'){
char op=ops.top();
ops.pop();
if(op=='^'){
int re=num.top();
num.pop();
num.push(re+1);
}else if(op=='+'||op=='*'){
int a=num.top();
num.pop();
int b=num.top();
num.pop();
if(op=='+'){
num.push(a+b);
}else{
num.push(a*b);}
}else // other op{
result=-1;
break;
}
ops.pop(); //delete'('
if(ops.empty()){  //the tree is end
result=num.top();
break;
}
}else{
ops.push(str[i]);
}
++i;
}else if(str[i]!='.'){
t=i;
while(str[i]>='0'&&str[i]<='9'){
++i;
}
num.push(stoi(str.substr(t,i-t)));
}else{  //'.'
break;
result=-1;
}
}
if(i==str.size()){
result=-1;
}
cout<<result<<endl;
}


• 9
点赞
• 1
评论
• 31
收藏
• 一键三连
• 扫一扫，分享海报

03-31
03-20

11-10
03-17 823
08-03 3万+
01-06 3894
12-13 3530
08-30 1万+
09-28 1448
09-11 928
09-29 1034
04-11 5031
04-08 9554
09-21
©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。