百度2011实习生招聘笔试题

第一题
1.extern "C"{}是什么意思?其作用是什么?
   extern "C" 实现的类C和C++的混合编程

2.写出至少两种设计模式,阐明其使用场景,有伪代码更好。
   单例模式 适配器模式 工厂模式  装饰模式

3.TCP中time_wait状态是什么意思?其好处和坏处分别是?
   服务器在close socket之后便进入time_wait状态

第二题
1.有N个任务(N < 1000),其中有些任务的执行依赖于其他任务的执行,如A任务执行之后B任务才能执行,但这些任务之间不存在循环依赖。请用一个算法来输出这些任务的执行顺序。
   拓扑排序

2.查找一个文本内的完整句子的数量,文本中包含大小写字母、空格、“,”和“.”,完整的句子是指以“.”结束,且“.”号前必须出现至少一个字母。写出程序。
  别人的 思路:读入文本每一行,然后遍历。
            记录每一行最后一个字符,若行首为“.”,则需要上一行末尾的字符。

我的做法:

#include<iostream>
#include<string>
#include<algorithm>
#include"boost/regex.hpp"
using namespace std;
using namespace boost;
int main()
{
 int count=0;
 regex reg("[a-zA-Z]{1,}\\.");
 FILE *fp=fopen("E:\\正则.txt","r");
 char s[100];

memset(s,0,100);

 while((fscanf(fp,"%s",s))!=EOF)
 {
  cout<<s<<endl;
  if(regex_match(s,reg)==true)
  {
   cout<<"我被调用了"<<endl;
   count++;
  }
  memset(s,0,100);
 }
 fclose(fp);
 cout<<count<<endl;
 system("pause");
 return 0;
 
}

第三题
有1000亿条记录,每个记录包含url、ip、访问时间,请设计一个系统,满足下面两个查询:
1.针对特定的时间段(精确到分),计算访问特定url的ip数;
2.针对特定的时间段(精确到分),计算访问特定ip访问的url数。
      用的MapReduce的思想。

posted on 2011-08-10 10:33  原来...  阅读(439)  评论(0编辑  收藏  举报

导航