首页 > 华为8.26笔试编程题
头像
CCdws
编辑于 2020-08-26 21:29
+ 关注

华为8.26笔试编程题

第一题:
输入一行32位的无符号整数数组,不定长,用空格分隔,要求对它们做“加密”:
步骤A:交换:对于每个整数,按二进制每两位交换,第一位和第二位换,第三和第四换,以此类推。如0010,交换成0001。
步骤B:循环右移:对于每个整数,按二进制右移两位,右移出来的最低2位放到下一个数的最高2位,以此类推。最后一个数的最低2位安到第一个数的最高2位。如果只有一个数,则右移后的最低两位放到自己的最高位。
输出“加密”后的数。
示例:输入1 2,输出1073747824  2147483648
第二题:输入一组矩形,分别给出宽和高,求这些矩形组成的连续最大面积(最大柱状图面积的变形)。
这题算法上leetcode有变形,算法倒是不难。比较费事的是输入格式,输入的是 “[1,2,3],[1,2,3]" 这样的一行字符串,第一个数组是宽,第二个数组是高,用c++费了好大劲一个个字符串处理的,这时候特别想念Python的split.
这题还考了边界处理,包括非法字符,两个数组长度不对等,宽<=0或高<=0的情况。不处理边界只能拿70%,别问我怎么知道的。😣
第三题:猜数字
给定一系列字符串,并告诉你每个字符串中有多少个字符是存在的并在最终位置上,有多少个字符存在,但是位置不对。请根据它们猜出正确的字符串。
示例:字符串,存在并位置对的个数,存在但是位置不对的个数
cloxy 3 0
cxmnu 1 1
kcotd  2 1
apqud  2 0
bldwz  1 1
答案:cloud

搬运工有话说:第一题和第三题都交了白卷,大神来上个答案呗。

全部评论

(15) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐