阿里电话面试可真突然!
前面项目聊了挺久。。
项目边边角角部分:
你为什么用Flask而不用别的框架?(果然面试总结不能过很久写。。已然忘记面试官说的别的例子了= =不过网上看起来简介倒是一搜一大把)
基础知识部分:
python的filter函数、map函数、reduce函数分别都干什么用的,怎么用
python的sort函数里面的那个cmp怎么用
算法题&系统设计题:
给你一个list,找出所有出现过的元素(重复出现的只输出一遍就可以)
我说python的set搞一下就可以了。。
然后要自己写的话就dictionary搞吧
然后面试官表示不行!数据量很大!内存不够!
然后我说那就外存换内存,中间结果hash到文件里搞
然后面试官再次表示不行!IO时间会很长!
然后我说那就直接hash到地址呢(具体我也不清楚了瞎猜着说的。。不知道是不是汇编搞一下。。。感受到了基础知识的薄弱T^T)
最终面试官说,用数据库啦~(我:卧槽完全忘了数据库!
然后就问了一下面试官干啥的,是阿里云做内容分发系统的。然后简单聊了聊,然后就挂了电话,顺便挂了这次电话面试= =
总结:
这次面试核心问题是没有问list的元素是什么。如果是int32,那么hash结果就是对的,数据最多4G,如果是int64,最大无限大,所以要问数字在int64值域里面的分布情况,如果很极端(都集中在某个地方或者出现有特定规律)那么用文件做外存是有效的,如果数据分布很均匀(均匀的摊在int64范围内),可以问一下是否接受一定错误。如果再不行,就可以考虑分布式来做