面试
首页>面试>华为2015校招技术类机试题及解题思路
华为2015校招技术类机试题及解题思路
2017-12-28

职位类型:技术类
机试时间:2015校招(2014年9月)
招聘公司:华为

机试共三道题,楼主写了一下解题思路,如果有什么错误或者大家有什么别的解题方法,可以在评论中提出来,大家互相交流探讨。

1.括号合法性判断
给定一个只有'('和')'的字符串,判断其在语法逻辑上是否合法。

解答:这题只要判断左括号和右括号的数是否相等即可。用两个变量int a,b存储左右括号数。一个for循环遍历字符串,遇到左括号a++;遇到右括号b++。最后若a==b,合法;若a!=b,不合法。

2.整数排序
输入一组大于等于0的整数,根据从大到小的顺序排序后输出;如果排序后有连续数时,只输出连续输的最大和最小数。输入的所有整数都各不相同,即不用考虑两个整数相同的情况。

如:输入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;
}
System.out.print(arr ",");
}
System.out.print(arr[0]);

3.设计一个定时器管理系统,可以动态启动、停止定时器,并能根据已失去的时长自动调整剩余的时间。

运行时间限制:1Sec
内存限制:无限制

输入:启动定时器:starttimmer: ID, time

举例:
starttimmer: 1, 1000

启动一个定时器,其ID为1,定时时长time为1000ms
注:定时器ID用例保证非负整数,定时时长一定为正整数

停止定时器:stoptimmer:
ID

举例:
stoptimmer:
1

停止一个ID为1的定时器

注:定时器ID用例保证非负整数,如果停止的定时器ID不存在,则忽略。

逝去时长:elapse:
time

举例:
elapse:
1000
时间逝去1000ms

注:用例保证时长一定为正整数

输入结束
end
输出:

按启动顺序输出还没有停止的定时器,如ID为1的定时器还有1000ms才结束

timer:
1, 1000

如果所有定时器都停止了,输出none

none

样例输入:

starttimer:
1, 1000

starttimer:
2, 2000

elapse:
1000

end

样例输出:timer: 2,1000

这题看了几遍才看懂,用了java的Timer,但是感觉不对,不知道怎样才能启动多个定时器, 怎么修改定时器的时长,以及怎样检测定时器的剩余时间。希望哪位大神来指教!

上一篇:求职者应该了解的面试五大技巧 下一篇:面试失利,可能是你的答题方式出现了偏差
相关资讯
吸引人的面试自我介绍怎么说?4 技巧完美活用自我介绍 面试通过后,拒绝了offer没去上班,后面想去还能联系去入职吗? 集体面试你要怎么应对 面试时HR问“你的职业规划是什么”,其实是想听你这样说 面试中练就你的“火眼金睛” 面试必知言谈禁忌 把握面试流程和考察重点,轻松过面试 面试时被问及职业规划如何对答如流? 行政文员岗在面试中如何发挥出最佳状态 面试回答失误,该怎样弥补
热门搜索
辞职理由怎么说最有说服力 猎头公司排名 本人对今后工作的设想 应聘表中职业怎么填 上班要带什么 前台行政主管需具备哪里条件 富士康年终奖多少钱 技术总监的责任 项目经理助理有前途吗 2016印象深刻广告