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