【大三退役ACMer面试经验】

ACM有所成绩并不代表可以随便拿到offer,还是需要有所准备。

最近才知道,非常有必要,多向学长或者拿到offer的前辈取经。 再次特别感谢学长的毫不保留的经验,以及和姐妹们一起找工作的刺激经历!

所以决定写下自己的面试经历,方便自己日后总结。

2020-1-2:字节跳动前端一面,挂。

           因为没有好好准备,这次面试可以忽视。

2020-1-7:深信服算法一面,过。

  1.     问题1:提前有一堆数据,然后给出一些关键字,求有哪些数据包含了关键字。 
  2.      问题2:提前给定N个关键字,然后给定一个文本,求每个关键字各出现了多少次。
  3.      问题3:给定模式串A,给定单词B,在允许一次失配的情况下,问B在A中出现多少次。
  4.      问题4:  有一堆数据,但是你不知道有多少个,让你随机抽取10个。

 上述问题被我用自己的语言描述成了一句话,面试官是用实际问题来问的。 做题多,然而实际运用的能力不一定强。

第一题:

           面试官:你有一个电话簿,然后有个人打电话过来了,我现在只知道4个数字,问可能是谁打的。

           我:      可以把原先的电话本的所有电话的每个4位数存在map里,映射一下就ok了。

           面试官:假如不一定是4位呢?

          我:        所有长度都存在map里,手写hash也行。

           面试官: 加入不是电话簿呢,有很多消息呢。

           我:        那后缀自动机可以搞定。 (然后介绍了后缀自动机的功能和复杂度)

    (整个过程面试官都在引导我,很感谢。)

第二题:

        面试官:给定N个关键字,然后给定一个文本,求每个关键字各出现了多少次。

        我:      建立AC自动机....介绍了一通

      描述怎么建立fail树,怎么线性得统计次数。

第三题:

        面试官:给定模式串A,给定单词B,在允许一次失配的情况下,问B在A中出现多少次。最好用到KMP

        我:     我在hihocoder上用二分+hash写过失配两次的题目。这里既然要用到KMP的话,估计exKMP+hash也可以搞。

        然后介绍了怎么写。

   

第四题:

        面试官:有一堆数据,但是你不知道有多少个,让你随机抽取10个。

        我:     显然要随机,但是由于不知道有多少个,我们可以用蓄水池抽样算法。 具体怎么做我忘了。比较ACM中没遇到过。

        面试官:是的,是蓄水池算法(露出惊喜的味道,估计其他很多人都没听过?)

总结:因为是针对ACMer的算法岗,所以问题还比较友好,面试官水平也高,过程很遇到。

经验:多和面试官互动,可能能想出更好的算法。

   

2020-1-8,10:00:深信服算法二面,待续。

2020-1-8,14:00:字节跳动后端一面,待续。

2020-1-8,16:00:依图后端一面,待续。

2020-1-8:18:00  :一家奇怪的公司。

 

猜你喜欢

转载自www.cnblogs.com/hua-dong/p/12162930.html