创新工厂笔试小记

前两周看到丁学长的创新工厂的实习招聘广告后试着投了一份,没想到第二天就收到笔试的通知。于是今天起了个大早,独身前往来到了清华科技园。

九点便来到了科技园,环境挺清静的,小逛了一圈,看到Google的Logo和那“非法献花”台,不禁感叹“Google招牌今犹在,不见当年谷歌人”。

创新工厂的办公室不大,但里面人却不少。我开始还以为大家是周末也喜欢泡在办公室里,后来才知道这周六也正常上班,不过上班的时间倒挺随意的,似乎这也成了IT公司的惯例了。随便看了下他们用的OS,发现Ubuntu出镜率最高,不知我能去笔试是不是因为简历里说也用这系统的缘故:P

今天来笔试的人很少,上午共9人,下午还有5个,听说是先前已经给一部人笔试过了。和我一组的除一位是大三的之外,其余都是研二的。基本都是IT腼腆男,话不多 囧。

考试题目不算难,尤其前面的选择题,都是很基本的数据结构+概率数学,最后还有一道编程。这里有个小插曲,我最初拿的题目是几份试题混合钉在一块的,然后换了好几次,搞得接待的那位MM说了几次对不起。结果是考试的时间延长了几分钟,并且我看全了几份试卷的编程题。

我最后做的编程题是编写一个函数,从一个字符串A中删除所有的字符串B,如A=“abacacb”,B=“ac”,最终结果为“abb”,要求不允许使用额外空间。这题应该很常见的了,不过要做好也不容易,除了常规的处理,还需要考虑不少特殊情况和边界条件:

  1. 参数包含空字符串。
  2. A的长度等于或小于B。
  3. B与A在内存中有部分重合(比如B为A的结尾部分)。
  4. ……

这题应该是直接对数据的地址进行操作的,不过我太久没有用C++了,而且答的时候也没考虑到位。

笔试40分钟后居然还有个One on One面试,而且面试官还是北软的学长,不知是不是专门选出对应学校的学长来面的。学长询问了下项目,然后又要求当场编程解一道题:

以扑克牌为参考,定义A=1,2~9对应原值,T=10,J=11,Q=12,K=13,给出一个首尾相联的输入序列如”QATKK25763″,要求将值为13或者相邻两字符之和为13的字符去掉,求出最后所得字符串的长度。如上例中,“QA”和“76”之和为13,Cut掉,两个K也要去掉,这时剩下的首字符T和尾字符3之和也是13,同样要去掉,最后剩下“25”,故答案为2。

由于只要求长度,我当时的做法是将字符串依次放入一个字符数组,依次检索并将值为13或相加之和为13的数标为0,然后处理首尾第一个非0的数相加为13的情况(其实在除去值为13的字符时还要考虑除去后剩下的相邻两数是不是也要除去的,不过当时没考虑到。),最后再统计一下剩下非零的数的个数即可。

这样的解法应该是最容易想到的方案了,字符串小的时候问题不大,不过超长串的话占用的空间就要换其它办法的了。回来后想想也许用循环链表会更好一些,以数据流的方式读入每个字符,值为13的直接丢弃,如果不为13的话检测是否与首尾相加之和等于13,如果不等则加入,否则的话,除了要把相应的结点去掉,还要检测剩下的是否形成了不合规定的字符串。不过用循环链表来判断省了查找非零值的过程,直接判断相邻结点就好了。

另外当时编程的时候居然用HashMap来这样的重型工具,估计要被面试官BS了,写个小函数用Switch语句对应下效率会更高些吧。晚上回来看到一群人在有道难题里感叹Java答题不利,看来Java果然把人给养懒了,这阵子要好好补习下C语言才对。

这次笔试虽然表现不佳,但收获不少,也看到了自己的诸多不足之处。无论如何,能到创新工厂感受下氛围,也是份难忘的经历吧:P

Advertisements

一条回应 to “创新工厂笔试小记”

  1. 我的2010 « IM CODDY's学习日志 Says:

    […] 本月开始整理实习简历,边忙学业的同时也开始试着参加各类招聘会,同学之间见面时也更多的会聊到这话题。月底到创新工场开始自己第一份实习面试,虽然有些初生牛犊不怕虎的味道,但这次的面试经历收获丰硕。要找一份好的工作,个人实力自然十分重要,同时还要学会推销自己。 […]


发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: