谷歌Kirkland Onsite

第一轮:两道题

  1. 热身题,判断两个矩形是否有重叠
  2. 打印一颗二叉树,从左到右。比如:
        1
      /   \
    2      3
   / \
  4   5
     / \
    6   7

打印出 4 2 6 1 5 3 7

第二轮: 两道题

  1. 整数相除,输出带循环的小数。比如:
    5/3 ==> 1.(6)
  2. 大数(用字符串表示)相乘,返回也是字符串。比如:
    “13”x"15" ==> “195”

第三轮: 给一个很长字符串,输入最长的是panlindrom的sub-sequnce(不是substring)。比如:
A0bc0cbA ==> Abccba (A00A不行因为不是最长)
这题没想到什么好方法,时间复杂度很高

第四轮:BQ+coding:
给一个数组构造一个iterator。比如:
[2,3],[4,2],[1,3]表示2个3,4个2,1个3
iterator该返回:3,3,2,2,2,2,3

第五轮:常见题 给一个产生0-5的均匀随机数发生器,构造一个随机产生0-7的均匀发生器。并证明是均匀的

这是二进宫了,做得不好,估计又要跪。一声叹息