投了个北京c/c++软开,笔试地点:南大
题目分为3部分:简单题3道、算法编程题3道、系统设计题1道
简答题:
1、兄弟单词(变位词),如army和mary为兄弟单词,设计一个算法,找出给定字典中的所有兄弟单词;
2、系统日志分为几个层次,第一级分为A、B、C、D...第一级下分为第二类a、b....,第二类下又分为第三级ⅠⅡⅢⅣⅤ、第三级下为数据项key-value对,key为数据项,从1开始,写入log时,用户提供5个参数,采用write_log(A,a,Ⅰ,1,xia),从log中读出时提供4个参数get_log(A,a,Ⅰ,1),返回对应的value值。设计合理的数据结构存储日志
3、c和c++如何动态分配和释放内存,区别是什么
编程题
1、网络爬虫,从链接www.baidu.com/a.html开始搜索,a.html链接到b.html,为简化问题,假设链接到的都不包含相同url,现从baidu.com/a.html和baidu.com/b.html两个入口进行爬虫,则得到2个单链表,如何找出其中相同的url(假设url有上百万,不能用hash)
2、
图中的方框代表层,圆圈代表数据节点,现在竖着画一条线(可以拐弯),穿过数据节点
(1)写出一个函数,判断哪些节点有可能在一条线上,
(2)给出一个函数,求所有可能与其在一条线上的节点
系统设计题
百度的提示栏
问实现思路,给出实现的数据结构和算法描述;如果要改进,怎么能在时间和空间上有所提升