Google 电面二进宫

原帖地址:一亩三分地

上周三电面了一次,题目是recurring decimal,边界条件考虑得不是太好,所以给了个二面的机会。这次比较顺利早上面完下午就收到cong了
这次出了一个byte encoding的题目,大概是给你一种编码的格式,然后给你一个byte数组,让你判断这个数组合不合法
这个编码的定义是,有1-7byte的character,每种character第一个byte有一个固定的前缀,比如1 byte character第一个byte的前缀是0,2 byte是110, 3 byte 是1110以此类推, 8byte是11111111。
有一个特殊的前缀是10,这种byte是每个多byte character的组成部分。比如一个2 byte character: 110XXXXX 10XXXXXX。一个3 byte character: 1110xxxx 10xxxxxx 10xxxxxx。
如果字符被打段或者超长都要fail。
算法很简单,实现起来还是有些细节要注意。这题之前面经没看到过,就发出来给大家留个参考。