第一题:
输入一行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) 回帖