一、
1、extern "C"{}的作用以及能解决什么问题
答:C++里的关键字,以C风格编译生成函数名,具有C/C++通用性。
2、举两个经典设计模式,并用伪代码说明
答:必须一个单例模式,幼稚简单。 另外一个,随便整个观察者模式,工厂模式,无非就是多态的应用。
3、time_wait是什么,什么情况会发生,有什么好处和坏处
答:等是TCP/IP断开的4次握手时候的神马等待时间。
二、
1、有N<1000个模块,其中有些模块存在编译依赖(若A依赖B,那么编译B之前必须A),设计一个算法
找出一个编译序列,并给出时间,空间复杂度
答:这样描述都能想到拓扑,建图的邻接表,加一个栈或者队列就可以完成拓扑序列了。
2、一个文本字符串由大小写字母,空格,',' '.'组成,求这个文本中完整句子的个数,一个完整的句子以'.'号
结尾并至少包含一个字母(完整代码)
答:保持一个bool表示当前区间内是否出现过字母,初始化区间是[begin,end],begin==end,在头部。
然后end去往后走,如果有字母当然要记录bool为true,遇到文件结束符或者'.'则停止,如果是'.',根据bool决定是不是个句子。 之后继续搜索,令begin和end为'.'的下一位,end继续往后走。
三、
有1000亿条记录,每条记录由url,ip,时间组成,设计一个系统能够快速查询以下内容
1.给定url和时间段(精确到分钟)统计url的访问次数
答:哈希键值为url,实值为map<访问时间>。 给定url,直接哈希定位到相应map,给定时间段,直接两次find得到遍历区间范围,问题结束,效率logN;
2.给定ip和时间段(精确到分钟)统计ip的访问次数
同上。