1:请描述数据结构中栈和队列的区别。并说出3个操作。
答:栈先进后出。队列先进先出。例如(pop() push() empty() back() front());
2:请描述一下C++中多态。举个例子:
我学java的。但我记得多态应该是重载和重写。
3:请描述下TCP四次挥手。并说下Time_wait的作用。
四次挥手的图我画对了。但发的包名称乱说了。。。Time_wait我以为是等待时间。时间到了就默认关闭的样子。。。
1:写个能将整篇文章单词翻转的程序。不允许使用任何函数。这个ACM题库里有不说了。
2:最长递增子序列:
这道题当场傻逼了。不过印象里是dp用LCS做的。后来一直傻逼。暴力做了。。。
其实是把源串排序用排序后的串和源串求LCS。傻逼了
3:写个有限状态机。获得C++代码中所有的注解。
三:系统设计:设计一个同时在线用户量为1亿时。程序要随时能够更新游戏的排名、用户要能查到自己排名。
我设计:
1:根据用户排名设计哈希算法。把1亿用户的数据映射到1W个文件中。这样每个文件有1W的用户。文件加上排名索引。
2:读写分离。即存系统和读系统分离成两部分。
3:用户读取数据时先按索引查到用户当前分数大致的排名文件。再在文件中进行查询。
4:存,因为存不是特别好控制。插入文件后更新所有文件的索引。但可能某个文件会变得特别大。当1个文件的用户量到达2W时候分裂文件。
后记:以上东西不一定正确。但我觉得我一个渣渣大学的本科生。能与这么多研究生在一个考场里笔试还是蛮爽的。继续找工作ing....