华为2015校园招聘技术类机试题目及解题思路
职位类型:技术类
求职信息
求职信息
招聘公司:
面试问题
机试共三道题,楼主写了一下解题思路,如果有什么错误或者大家有什么别的解题方法,可以在评论中提出来,大家互相交流探讨。
面试问题
求职面试
1. 括号合法性判断 求职信息
给定一个只有'('和')'的字符串,判断其在语法逻辑上是否合法。
求职面试
解答:这题只要判断左括号和右括号的数是否相等即可。用两个变量int a,b存储左右括号数。一个for循环遍历字符串,遇到左括号a++;遇到右括号b++。最后若a==b,合法;若a!=b,不合法。 礼仪
求职信息
求职信息
2. 整数排序
礼仪
输入一组大于等于0的整数,根据从大到小的顺序排序后输出;如果排序后有连续数时,只输出连续输的最大和最小数。输入的所有整数都各不相同,即不用考虑两个整数相同的情况。
面试问题
面试网
如: 输入4,7,2,1,5,8,9,11
qzm4
输出11,9,7,5,4,2,1
qzm4
解答:第一步当然是先排序,各种排序法都行。用Java的话最方便啦,调用Arrays.sort(int[]),一步完成(当然这个是顺着排,输出的时候倒过来就行了)。接下来是去掉连续数的中间数字。注意排序后数组的头和尾必然要输出的,于是循环从1:length-2,判断这些元素跟它前后的元素是否都相差1。
面试问题
面试网
System.out.print(arr[length-1] ",");
面试网
for(i = arr.length - 2; i >0; i --){
求职面试
if((arr== arr[i 1] -1)&&arr == arr[i-1] 1){ 面试问题
continue; 礼仪
} 求职面试
System.out.print(arr ",");
面试问题
} 面试问题
System.out.print(arr[0]); 面试问题
求职信息
3.设计一个定时器管理系统,可以动态启动、停止定时器,并能根据已失去的时长自动调整剩余的时间。
求职信息
面试网
运行时间限制:1Sec
内存限制:无限制 求职信息
求职信息
输入:启动定时器:starttimmer: ID, time 求职信息
举例:
面试问题
starttimmer: 1, 1000 求职信息
qzm4
启动一个定时器,其ID为1,定时时长time为1000ms
求职面试
注:定时器ID用例保证非负整数,定时时长一定为正整数
面试问题
停止定时器:stoptimmer:
qzm4
ID
求职面试
举例:
面试网
stoptimmer: 礼仪
1
礼仪
停止一个ID为1的定时器
求职信息
注:定时器ID用例保证非负整数,如果停止的定时器ID不存在,则忽略。 面试网
面试网
逝去时长:elapse: 求职面试
time 求职信息
面试网
举例: 面试问题
elapse: 求职信息
1000 求职信息
时间逝去1000ms 面试问题
qzm4
注:用例保证时长一定为正整数 面试网
礼仪
输入结束 求职面试
end
输出:
按启动顺序输出还没有停止的定时器,如ID为1的定时器还有1000ms才结束
面试网
timer: 礼仪
1, 1000
求职面试
如果所有定时器都停止了,输出none qzm4
qzm4
none
礼仪
样例输入:
starttimer:
1, 1000
qzm4
求职信息
starttimer:
2, 2000
求职面试
elapse: qzm4
1000
qzm4
end
礼仪
面试问题
样例输出:timer: 2,1000
qzm4
这题看了几遍才看懂,用了java的Timer,但是感觉不对,不知道怎样才能启动多个定时器, 怎么修改定时器的时长,以及怎样检测定时器的剩余时间。希望哪位大神来指教! 面试网
求职信息
相关攻略:
求职信息
求职面试
qzm4
面试网
求职信息
声明:华为2015校园招聘技术类机试题目及解题思路来源于互联网,其版权均归原作者及其网站所有,本站虽力求保存原有的版权信息,但由于诸多原因,可能导致无法确定其真实来源,如果您对本站文章、图片资源的归属存有异议,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意!