第一题
1.extern "C"{}是什么意思?其作用是什么?
extern "C" 实现的类C和C++的混合编程
2.写出至少两种设计模式,阐明其使用场景,有伪代码更好。
单例模式 适配器模式 工厂模式 装饰模式
3.TCP中time_wait状态是什么意思?其好处和坏处分别是?
服务器在close socket之后便进入time_wait状态
第二题
1.有N个任务(N < 1000),其中有些任务的执行依赖于其他任务的执行,如A任务执行之后B任务才能执行,但这些任务之间不存在循环依赖。请用一个算法来输出这些任务的执行顺序。
拓扑排序
2.查找一个文本内的完整句子的数量,文本中包含大小写字母、空格、“,”和“.”,完整的句子是指以“.”结束,且“.”号前必须出现至少一个字母。写出程序。
思路:读入文本每一行,然后遍历。
记录每一行最后一个字符,若行首为“.”,则需要上一行末尾的字符。
第三题
有1000亿条记录,每个记录包含url、ip、访问时间,请设计一个系统,满足下面两个查询:
1.针对特定的时间段(精确到分),计算访问特定url的ip数;
2.针对特定的时间段(精确到分),计算访问特定ip访问的url数。
用的MapReduce的思想。