就业数据资源平台
当前位置:首页 > 笔试题目
美团网研发工程师笔试题



  1. 有一个随机数发生器,以概率P产生0,概率(1-P)产生1,请问能否利用这个随机数发 生器,构造出新的发生器,以1/2的概率产生0和1。请写明结论及推理过程。



  2. 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是( ) A. EDCBA; B. DECBA; C.DCEAB D,ABCDE



  3. 4个足球队打小组单循环,计分方式:胜3分平1分负0分,如果计分相同,则净胜球 多的队伍排名靠前,如果净胜球还一样,则进球多的球队排名靠前。小组前两名出线。问可能出线的最低分数是多少。请说明推理过程。 备注:单循环赛是指所有参加比赛的队两两之间都比赛一次,最后按各队在全部比赛中的积分,得失分率排列名次。



  4. 从1到1000000的所有自然数,数字“1”一共出现了多少次?例:自然数101中,数 字“1”出现了2次,自然数1011中,数字“1”出现了3次,请写明计算过程及结果



  5. 以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”。请找出下面代码中的 所有错误,直接在代码的右侧空白处修改。



  #include"string.h"



  main()



  {



  char*src="hello,world";



  char*dest=NULL;



  int len = strlen(src);



  dest = (char*)malloc(len);



  char* d = dest;



  char* s = src[len];



  while(len--!=0)



  d++ = s --;



  printf("%s",dest);



  return 0;



  }



  6. 以下代码功能:找出一个有序(字典序)字符串数组arr种值等于字符串v的元素的符号, 如果有多个元素满足这个条件,则返回其中序号最大的。请找出下面代码中所有错误,直接在代码右侧空白处修改



  Int bisearch(char**arr, int b, int e, char*v){



  Int minIndex = b, maxIndex = e, midIndex;



  while(minIndex



  midIndex=(minIndex+maxIndex)/2;



  if(strcmp(arr[midIndx],v<=0)){



  minIndex = midIndex;



  }else{



  maxIndex=minIndex;



  }



  }



  if(!strcmp(arr[maxIndex],v)){



  return maxIndex;



  }else{



  return -1;



  }



  }



  7. 字符串ABCD,可以由字符串BCDA或者CDAB通过循环移位而得到。请编程实现以下 检测:字符串S1是否可以由字符串S2通过循环移位而得到。 语言不限(推荐C/C++,不推荐写伪码)



就业数据资源平台