华为软开2.23机考题目
1.16位半浮点数转32位浮点数。
半浮点数:第0位标志位,1-5位指数位,6-15位尾数位。浮点数:第0位标志位,1-8指数位,9-31位尾数位。浮点数指数位=半浮点数指数位+112(128-16)。尾数位=半浮点数尾数后面补零。
特殊:指数位全为1时输出为0xFFFFFFFF的十进制。
输入:一个十进制数
输出:这个十进制数的浮点数形式(十进制)。
这道题就按照题目一步一步编程就行了,主要考察十进制和二进制的转换以及字符串的处理。但我最后只通过了60%,不知道哪里出问题了。
2.字符串寻亲(最小覆盖字串的顺序版)
在母串查找子串时要求顺序和字串相同。
我直接套的最小覆盖字串的滑动窗口方法,就是没有顺序的版本,通过了45%,本来想做完第三题回来再优化,但是没时间了。
3.荣誉墙。
小明有n个荣誉,每个荣誉的时间不一样(1-3月),现在要在荣誉墙上摆荣誉,问最多能在墙上摆多少个荣誉时间不冲突的荣誉(1-3月和2-4月冲突)。
能用回溯做,脑子里有思路, 但是忘了咋写了,最后只写了3个以内荣誉的解法,通过20%。
总结:两道题都是考字符串,华为很喜欢考字符串。第二题第三题都有思路但是感觉自己敲代码敲的太慢了,只能靠模板实现部分功能。笔试应该过了,接下来准备面试了。
查看30道真题和解析