huawei校招测试题
三道题两小时。
第一题,圈住所有点的长方形,很简单略过。
第二题:奇偶排序。
| 奇偶排序 | |
| 描述: |
输入若干(不超过1000个)非负整数数字,请先取出为奇数的数字按从大到小排序,再取出偶数从小到大进行排序。 |
| 运行时间限制: | 10 Sec |
| 内存限制: | 128 MByte |
| 输入: |
输入一串乱序的数字 |
| 输出: |
输出排序后的数字 |
| 样例输入: |
12 34 5 7 92 3 8 |
| 样例输出: |
7 5 3 8 12 34 92 |
| 答案提示: | |
第三题:记账系统。
| 饭圈的记账系统 | |
| 描述: |
W公司食堂因为装修需要停业一个月,员工们用餐不方便,热心的秘书MM组织了一个饭圈,在公司附近一家经济实惠的饭店解决用餐问题。饭圈采用会员制,会员的用餐费用由秘书MM负责记录。请帮助秘书MM完成这个月饭圈的记账系统: 1)管理会员,允许会员加入或者退出饭圈
2)记录会员的每次就餐信息,方便会员进行查询
3)自动统计会员就餐产生的消费总额,方便秘书MM进行结账
一行一条命令,不存在多个命令位于一行的情况。命令语法(各表达式之间使用1个空格隔开,测试用例确保1个空格): command [para] 测试用例保证输入命令合法,如测试用例保证参数个数正确,参数都是正整数。。 ca 1、增加会员 功能:增加饭圈会员 命令格式: AddMember MemberId 输入:MemberId 会员ID 输出:成功,不输出;失败(如会员ID已存在),输出"AddMember false"。 2、删除会员 功能:删除饭圈会员,包括该会员所有消费记录 命令格式: DelMember MemberId 输入:MemberId 会员ID 输出:无 3、餐费记录 功能:餐费记录,允许会员在同一天有多次餐费记录 命令格式: RecordCost Date MemberNum MemberIdArray AverageCost 输入:Date 就餐日期,取值范围为1~31 MemberNum 就餐人数 MemberIdArray 就餐的会员ID数组,用例保证MemberIdArray中不存在重复的ID AverageCost 人均费用 输出:成功,不输出;失败(如日期错误,会员ID不存在等),输出"RecordCost false"。 注意:如果失败,该次操作的所有数据都不能录入。例如就餐日期错误,就餐的会员ID数组里面的某个ID是不存在的ID,该次操作都无效。 4、 查询餐费,排序输出 功能:查询指定日期内各个会员的餐费总额,按照会员ID从小到大排序输出 命令格式: SortTotalCost BeginDate EndDate 输入: BeginDate 开始日期,包括BeginDate本身,取值范围为1~31 EndDate 结束日期,包括EndDate本身,取值范围为1~31 输出: MemberNum BeginDate至EndDate之间有消费记录的会员总数 CostArray 各会员的餐费总额(会员ID 餐费总额,一个空格隔开) 说明: 测试用例保证EndDate大于等于BeginDate 5、查询指定会员的餐费详单 功能:查询指定会员的餐费详单 命令格式: QueryDetailsOfSingleMember MemberId BeginDate EndDate 输入: MemberId 会员ID BeginDate 开始日期,包括BeginDate本身,取值范围为1~31 EndDate 结束日期,包括EndDate本身,取值范围为1~31 输出: RecordNum BeginDate至EndDate期间实际产生的餐费记录数 CostDetailsArray 餐费详单(日期 餐费,一个空格隔开),按照餐费记录的日期从小到大按序输出,如果存在一天内多次消费的,同一天的记录按照餐费录入顺序输出。 说明: 测试用例保证EndDate大于等于BeginDate |
| 运行时间限制: | 无限制 |
| 内存限制: | 无限制 |
| 输入: |
多行命令 |
| 输出: |
命令执行的结果 |
| 样例输入: |
AddMember 0 |
| 样例输出: |
AddMember false |
| 答案提示: | |
第二题代码,有一个用例没通过:
#define LOCAL
#include<iostream>
#include<cstdio>
#include <stdlib.h>
#include <algorithm>
using namespace std; int main(){
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif long int x,i,a=,b=,an[],bn[];
while(scanf("%d",&x)!=EOF){
if(x%==)
an[a++]=x;
else
bn[b++]=x; }
sort(an,an+a);
sort(bn,bn+b);
for(i=a-;i>=;i--)
printf("%d ",an[i]);
for(i=;i<b;i++)
printf("%d ",bn[i]);
system("pause"); return ;
}
第三题代码,写完了,但有bug,编译没通过。
//#define LOCAL
#include<iostream>
#include<cstdio>
#include <stdlib.h>
#include <algorithm>
#include <map>
#include <vector>
#include<cstring>
#include<string>
using namespace std; struct member{
int id;
vector<int> rec[];
int tol[];
};
map<int,int> mid,res;
member n_member;
vector<member> x;
int indx=; int main(){
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif int a,n,i,j,per,tar,rec_size,date,begin,end,rec[];
char tmp[];
while(scanf("%s",tmp)!=EOF){
if(tmp[]=='A'){
scanf("%d",&a);
if ( mid.find(a)==mid.end() )
printf("AddMember false");
else{
mid[a]=indx++;
n_member=new member;
n_member.id=a;
for(i=;i<;i++)
n_member.tol[i]=;
x.push_back(n_member);
}
}
if(tmp[]=='R'){
scanf("%d",&date);
scanf("%d",&n);
for(i=;i<n;i++)
scanf("%d",&rec[i]);
scanf("%d",&per);
for(i=;i<n;i++){
x[mid[rec[i]]].rec[date].push_back(per);
x[mid[rec[i]]].tol[date] += per;
}
}
if(tmp[]=='S'){
scanf("%d%d",&begin,&end);
for(i=;i<x.size();i++){
res[x[i].id]=;
for(j=begin;j<=end;j++)
res[x[i].id] += x[i].tol[j];
}
for (iterator iter = res.begin(); iter != res.end(); ++iter) {
cout << *iter << endl; }
}
if(tmp[]=='Q'){
scanf("%d%d%d",&tar,&begin,&end);
rec_size=;
tar=x[mid[tar]];
for(i=begin;i<=end;i++){
rec_size += tar.tol[i].size();
}
printf("%d\n",rec_size);
for(i=begin;i<=end;i++){
for(j=;j<tar.rec[i].size();j++)
printf("%d %d\n",i,tar.rec[i][j]);
}
} system("pause"); return ;
}
huawei校招测试题的更多相关文章
- Huawei校招机试中的猴子吃桃问题
//============================================================================ // Name : Monkey& ...
- 记2016腾讯 TST 校招面试经历,电面、笔试写代码、技术面、hr面,共5轮
(出处:http://www.cnblogs.com/linguanh/) 前序: 距离 2016 腾讯 TST 校招面试结束已经5天了,3月27日至今,目前还在等待消息.从投简历到两轮电面,再到被 ...
- Android基础测试题(四)
看了前两道题大家有没有发现,测试题少了(一),大家猜猜测试题(一)是什么? Android基础测试题(四): 需求: 建一个方法,格式化输出2016-11-14 10:15:26格式的当前时间,然后截 ...
- Android基础测试题(二)
今天给大家带来的是Android基础测试题(二) 题目要求: 定义一个5位长度的整型数组并初始化,然后构建方法根据用户传入的数字判断是否存在数组中,如果存在,返回所在位置,如果不存在,返回-1 首先第 ...
- 阿里提前批校招内推offer经历
经过一个半月的阿里内推面试,今天终于收到了阿里的offer邮件 .阿里的内推面试一共有四轮,本人是7月19号投的内推邮件,8月28号收到了offer的邮件.首先本人谈谈内推的看法.内推是公司招聘人才的 ...
- mysql测试题
MySQL测试题 一.表关系 请创建如下表,并创建相关约束 创建数据库create database school charset utf8; 建表create table class(cid int ...
- Cellebrite UFED 5.1 发布,全面支持三星 S6 S6 Edge Note5 HUAWEI series
世界级取证公司Cellebrite 昨天发布了最新的 UFED 5.1 系统更新,4PC全面支持三星S6,S6EDGE NOTE5 以及HUAWEI,LG系列恢复,锁屏密码XX!下面是部分截图 有需要 ...
- 阿里巴巴、美团等各大互联网公司的 Java类 校招对本科生有什么要求?
转载: 阿里巴巴.美团等各大互联网公司的 Java类 校招对本科生有什么要求?
- 百度在线笔试编程测试题(Python):整数分解成素数的积
编程测试题: 输入一个正整数将其分解成素数的乘积,输入格式连续输入m个数,然后将这m个数分别分解,如 输入: 2 10 20 输出: 2 5 2 2 5 Python code: def primes ...
随机推荐
- 【LeetCode】Design Linked List(设计链表)
这道题是LeetCode里的第707到题.这是在学习链表时碰见的. 题目要求: 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的 ...
- 九度oj 题目1021:统计字符
题目描述: 统计一个给定字符串中指定的字符出现的次数. 输入: 测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串.注 ...
- 【Luogu】P1199三国游戏(博弈论)
题目链接 来看一波有理有据的分析 三牧小明的那篇 代码 #include<cstdio> #include<cctype> #include<algorithm> ...
- [BZOJ3545] [ONTAK2010]Peaks(线段树合并 + 离散化)
传送门 由于困难值小于等于x这个很恶心,可以离线处理,将边权,和询问时的x排序. 每到一个询问的时候,将边权小于等于x的都合并起来再询问. .. 有重复元素的线段树合并的时间复杂度是nlog^2n # ...
- BZOJ 3850: ZCC Loves Codefires【贪心】
Though ZCC has many Fans, ZCC himself is a crazy Fan of a coder, called "Memset137". It wa ...
- BZOJ2246 [SDOI2011]迷宫探险 【记忆化搜索dp + 概率】
题目 输入格式 输出格式 仅包含一个数字,表示在执行最优策略时,人物活着走出迷宫的概率.四舍五入保留3位小数. 输入样例 4 3 3 2 .$. A#B A#C @@@ 143 37 335 85 9 ...
- [USACO5.3]Big Barn (动态规划)
题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N x N 的方格.输入数据中包括有树的 ...
- mysql解压之后的安装
远程连接报错(error:10061)看这篇:https://www.cnblogs.com/zipon/p/5877820.html 从5.6.20之后root会自动生成一个随机密码在/root/. ...
- gridview和detailsview的完美结合运用实现增删改
原文发布时间为:2008-07-24 -- 来源于本人的百度文章 [由搬家工具导入] 1、因Gridview中没有增加记录,所以应利用datalistview或formview来弥补。 2、因为det ...
- 【转】3年PHPer的面试总结
[转]3年PHPer的面试总结 算法# 1.反转函数的实现# /** * 反转数组 * @param array $arr * @return array */ function reverse($a ...