2022年美团程序员面试题(应聘 求职 面试准备资料)_第1页
2022年美团程序员面试题(应聘 求职 面试准备资料)_第2页
2022年美团程序员面试题(应聘 求职 面试准备资料)_第3页
2022年美团程序员面试题(应聘 求职 面试准备资料)_第4页
2022年美团程序员面试题(应聘 求职 面试准备资料)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022年美团程序员面试题第1题:k链表翻转。给出一个链表和一个数k,比方链表1玲2玲3玲4玲5-6, k=2,那么翻转后2-1玲4玲3玲6玲5,假设k=3,翻转后3玲2玲116玲5玲4, 假设k=4,翻转后4玲3玲2玲1玲56,用程序实现。typedef struct node struct node *next;int data; node;void createList(node *head, int data)(node *pre, *cur, *new;pre = NULL;cur = *head;while (cur != NULL) pre = cur;cur = cur-nex

2、t;int BinarySearch(char *ar,int begin,int end,char *v)(int result=-l;while(begin = end)(int mid=begin+(end-begin)/2;if(strcmp(armid,v) 0)end=mid-l;else if(strcmp(armid,v) 0)begin=mid+l;else(if( result mid)result=mid;begin=mid+l;-10)return result;第7题:字符串ABCD,可以由字符串BCDA或者CDAB通过循环移位而得到。 请编程实现以下检测:字符串S1

3、是否可以由字符串S2通过循环移位 而得到。语言不限(推举C/C+,不推举写伪码)public class Question? private static void reverseCharArr(char arr, int left, int right) if (arr = null 11 left right) return;while (left right) char tmp = arrleft;arr I eft = arrright;arrright = tmp;left+;right-;-ii )public static void main(String args) Syste

4、m.out.println(isRotate(,ABCD,/ ,DABCn);)private static String rotate(String str, int i) if (str = null | | i str.lengthf) return null;char arr = str.toCharArray();reverseCharArr(arr, 0, i-1);reverseCharArrfari; i, arr.length-1);reverseCharArrfari; 0, arr.length-1);return new String(arr);)public stat

5、ic boolean isRotate(String si, String s2) if (si = null | | s2 = null 11 s2.length() != sl.lengthf) return false;int indexOfFirst = s2.indexOf(sl.charAt(0);-12if (indexOfFirst = -1) return false;System.out.println(indexOfFirst);String tmp = rotate(s2, indexOfFirst);System.out.println(tmp);if (tmp.eq

6、uals(sl) return true;)return false;)-13new = (node *)malloc(sizeof(node);new-data = data;new-next = cur;if (pre = NULL)*head = new;elsepre-next = new;)void printLinkfnode *head)(while (head-next != NULL) printf(%d , head-data);head = head-next;)printf(,%dn,/ head-data);)int linkLenfnode *head)(int l

7、en = 0;while (head = NULL) len +;head = head-next;)return len;)node* reverseK(node *head, int k)(int i, len, time, now;len = linkLen(head);if (len k) return head; else time = len / k;)node *newhead, *prev, *next, *old, *tail;for (now = 0, tail = NULL; now time; now +) old = head;for (i = 0, prev = N

8、ULL; i k; i +) next = head-next;head-next = prev;prev = head;head = next;) if (now = 0) -3-newhead = prev;old-next = head;if (tail !=NULL) tail-next = prev;)tail = old;)if (head != NULL) tail-next = head;return newhead;int main(void)(int i, n, k, data;node *head, *newhead;while (scanf(%d %d, n, k) !

9、= EOF) for (i = 0, head = NULL; i n; i +) scanf(M%d, data);createList(head, data);printLink(head);newhead = reverseKfhead, k);printLink(newhead);)return 0;)第2题:有一个随机数发生器,以概率P产生0,概率(1-P)产生1,请问能 否利用这个随机数发生器,构造出新的发生器,以1/2的概率产生0 和1。请写明结论及推理过程。这道题想等概率产生0、1,就需要找到两个*大事,这个两个* 大事发生的概率相同,随机数生成器可以以p产生0,以1-p产 生

10、1,所以有下面4个*大事,用随机数生成器产生00, 01, 10, 11, 各自的概率分别为p*p, p*(l-p), (l-p)*p, (l-p)*(l-p)可以觉察生成 01, 10的概率相同,因此只保存这两种状况敏感词舍弃,然后将01 映射为0, 10映射为1,那么等概率0, 1随机数生成器可得到第3题:4个足球队打小组单循环,计分方式:胜3分平1分负0分,假如计分相同,那么净胜球多的队伍排名靠前,假如净胜球还一样,那么进球 多的球队排名靠前。小组前两名出线。问可能出线的最低分数是多少。 请说明推理过程。备注:单循环赛是指全部参与竞赛的队两两之间 都竞赛一次,最终按各队在全部竞赛中的积分

11、,得失分率排列名次。第一名的最坏成果是全部球队之间都是平,但是它与其他三支球队 之间的竞赛累积进球最多的。所以其次名的最坏成果最差是三平,而 且球队累积进球其次多。所以最差是三分。第4题:从1到1000000的全部自然数,数字“1一共消失了多少次?例: 自然数101中,数字1消失了 2次,自然数1011中,数字“1消失 了 3次,请写明计算过程及结果。1-999,999: 10 的 5 次方 * 6=600,0001,000,000 : 1 次加起来一共600,001次第5题:请找出下面代码中的全部错误-6-说明:以下代码是把一个字符串倒序,如abed倒序后变为dcba#include,str

12、ing.hMmain()(char*src=,hello,world,1;char* dest=NULL;int len=strlen(src);dest=(char*)malloc(len);char* d=dest;char* s=srclen;while(len-!=O)d+=s-;printf(%sM,dest);return 0;)方法1:int main()(char* sre = hegworlcT;int len = strlen(src);7 char* dest = (char*)malloc(len+l);要为0 安排一个空间char* d = dest;char* s

13、= srclen-l;指向最终一个字符while) len- != 0 )*d+=*s-;*d = 0;尾部要加0printf(%sn,dest);free(dest);/使用完,应当释放空间,以免造成内存汇泄露return 0;)方法2:main()(char str=,hello,world;int len=strlen(str);chart;for(int i=0; it=stri;stri=strlen-i-l; strlen-i-l=t;)printf(M%sH,str);return 0;8第6题:以下代码功能:找出一个有序(字典序)字符串数组arr中值等于字 符串v的元素的符号,假如有多个元素满意这个条件,那么返回其中序 号最大的。请找出下面代码中全部错误,直接在代码右侧空白处修改Int bisearch(char*arr, int b, int e, char*v)I nt minin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论