2020秋招提前批 柠檬微趣笔试题目

声明

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