2020秋招提前批 柠檬微趣笔试题目
声明
2020秋招提前批柠檬微趣的笔试题,最终解释权归柠檬微趣所有。
笔试平台是牛客网
第一题
类型:二叉树、遍历与筛选
题目:
二叉树最浅叶节点和
举例:
对于这个二叉树,叶节点有2、8、9、13、21五个,其中最浅的是深度为3的三个叶节点:2、13、21,因此最浅叶节点和就是2+13+21=36
第二题
类型:数位
题目:
寻找一个数字数位重组后的略大数
举例:
例子1:
数字12的更大数是21
例子2:
数字321没有更大数
例子3:
数字213的更大数是231(而不是321)
第三题
类型:数组、子集
题目:
给定数组m和数字T,从中找到所有“元素和为T”的连续子数组,任两数组无交集。返回所有子数组中两数组长度和的最小值
子数组允许出现重复(说明原数组中存在重复的子数组区间)
举例:
数组m:{3,1,2,3}
数字T:3
结果:2
原因:可以找到{3},{1,2},{3}三个子数组,长度为1、2、1,“两个子数组长度和的最小值”就是1+1=2
第四题
类型:编码、转换
题目:
(记不清的英文)Google采用数字变长编码来传输…
给定一个数字和一个编码后的字符串,输出数字的编码和对字符串解码后的数字
编码方式:
对于给定数字M,将其转换成二进制,取前七位(低位),并将第八位(高位)作为标志位,如果第八位是1,则说明需要继续编码,是0则说明编码结束。编码结果是纯大写的十六进制字符串,例如0XE3
对于给定编码字符串S,其是一个纯大写的十六进制表示数字的字符串,比如0XE70X07,其中0XE7是第一个数字,取出来并将16进制转换成二进制,观察其高位是1还是0,是1,则弃其高位,继续计算下边的0X07并拼接到前边的高位上,转换成数字输出回来
举例:
100 = 0x64 = 0b01100100,高位(第八位)是0,所以编码后是0X64
0XE70X07 先看0XE7
0xe7 = 0b11100111 ,高位为1,所以要继续往后算0X07
0x07 = 0b00000111,高位为0,所以这个数字应该是:
0b00000111(去掉高位)连接0b11100111(去掉高位)
0b00001111100111 = 999
因此输出应该是0X64和999