当时去面试之前听他们招聘的说,我应聘的C++开发全国只招5个人,我自认为自己不算出类拔萃的那种人,所以 心态很好,完全是抱着打酱油的心态去的。支付宝一共有三次技术面,面试题比我面试腾讯的时候要难些。一面的时候问我对什么排序熟悉,我就说对常见的排序都 很熟悉,于是让我写个堆排序算法。前段时间刚写了STL部分代码,于是就用迭代器写了个泛型的推排序。然后问了一些简单的数据结构题,比如如何判断一个链 表是否有环,求环入**点。总之还算顺利,然后就直接去二面了。
二面的时候时候问了一点C++的问题,比如智能指针,我就说了一下auto_ptr,并且主要说了一下auto_ptr其实被C++标准所抛弃了, 由于在容器和通用算法中使用auto_ptr太容易异常,没有引用计数,难以解决二次释放等问题,顺便说了一下boost里面的smart_ptr库。然 后问我VC6.0和GCC的int储存有和区别,这是个比较偏的问题了,只要是VC6.0int的低16位在高地址,高16为在低地址,与GCC不同的, 但是GCC的实现方式更好一点。
三面的时候有个比较难的编程题,就是求一个字符串的最长的至少出现两次的字串。这个题在programing pearls上面有详细讲解,一般的ACM题也常见,标准解法是用后缀数组,不过实现起来比较麻烦,代码不短。
支付宝面试最长的就是hr面了,那hr太能聊了,从我高中问到大学,就像调查我一样,当时感觉自己都要被他扒干净了,不过最后能拿到offer我也是很意外,毕竟人家全国就招5个人。
面试的时候比较有趣的是和面试官聊起来了游戏,他问我最少长什么族,我说暗夜精灵吧,但是很久不玩了,很菜的。然后又聊到dota,我最擅长什么位置。我说我就一菜鸟,玩的比较多的是C和G。
满意的地方:
都挺满意的
不满意的地方:
没啥