Amazon实习电面,一道design做了50分钟

原帖地址:一亩三分地

很早之前约的1月18号,后来才发现是马丁路德金日,也不知道有没有影响。今天两点钟准时接到一个来自加州的电话,小哥叫做Tri,口音地道,应该是native美式英语。

上来就说,今天我们主要考察design。现在我们来设计一个Movie class,问我movie有些啥feature。我就说名字啊,导演啊,演员啊,类型啊。他说好,你先写这些。我就定义了vector的演员名字,string的类型名字等等成员变量。

然后他说,演员也有很多信息,我们来一个演员的class吧。我说好的,于是又搞了一个演员class,中途问了我很多关于class的定义的东西,比如constructo functionr的作用是什么,有哪些不同的写法,可不可以有很多个constructor,传递参数有哪些方法,各自有什么优劣,如果我想固定一些变量不做改动可以怎么办,等等等等。。。总之问了好多语言的细节。我基本都答上来了,有的是秒答,有的不太记得他提醒了一下也都答上了。不过我写的是C++,感觉那个面试官主要是写JAVA的,但是不影响问答。总之在问答的过程中,我完成了这个演员的class。

然后又重新回到movie的class。他说那电影类型的变量有没有可能用一些别的东西替代。我答了好几个,他都不满意。最后他说他希望我用一个枚举类,然后就过了。算是一个我没有答上来的小问。

这时候已经差不多过了三十多分钟了,然后他说,我们再来一个我想看的电影列表类吧。我也是醉了。。于是继续写,这个类里着重写了两个action,一个是添加一个电影进来,主要考察检查电影是不是空,是不是已经存在,和是不是超过了列表的最大长度,还有一些其它细节不太记得了。第二个是实现一个功能,我每次从这个列表里随即选一个电影出来看,看完之后把这个电影从列表删掉。写完以后他跟我讨论了几个action的时间复杂度。一边讨论一边发现可能我之前实现的细节可以再提升一下,但是他不让我修改了,因为已经四十五分钟了。

最后我问问题,他告诉我其实他不算是Amazon的,是LA的IMDB的,我说怪不得问了这么多电影的。然后说他们这里去年招了两个实习生。我大概一周左右可以知道结果。