24届携程软件研发岗笔试-春招

【写在前头:时间已经进入到了4月,现在的笔试面试经验对25届找实习的同学用处大一点,24届的同学也可以各取所需】

投递岗位:携程,客户端开发,上海

投递时间:24年3月中下旬投递,4月12号笔试邀请,4月16号笔试。

笔试(编程题*4):

1,给你一个字符串,你需要往字符串里面填充若干个"o",使得字符串有尽可能多的连续子串为"you",你一共要填充多少个"o"?

2,给你两个数组A,B。再给你一个数组C。你需要重排数组C,使得尽可能多的Ai+Bi=Ci(重排以后)。请问重排以后的C数组有多少个i满足之前的等式。

3,给你一个数组,你可以将数组内相邻的两个质数合并。合并以后会删除原本的两个数字,然后在原本的位置修改为两个数字之和。连续进行这样的操作,最短的数组长度为多少?

4,树的直径是树任意两个节点的最大值。现在定义函数f(i),表示节点i加上一个叶子节点以后,整棵树的直径。你需要求出从1-n的f(i)值。

总结:

1,先来讲一讲题目的理解

1.1,本质上求字符串里面,有多少个"yu"子串,不难。

1.2,用python解题,如果想要把Ai+Bi的结果在C里面查找,而使用 if (Ai+Bi) in C,这样的判断语句,那么肯定超时。实际上应该维护一个dic,里面以Ai+Bi的结果为key,而value是对应的下标(列表形式)。通过这种查找方式才可以解题。

1.3,光判断质数估计就可以卡退一拨人了。想了好久做不出来,直接print(n-9)了事,5%通过率。

1.4,没时间做了,注意到给的数据结构是一棵树而不是二叉树。可能需要用树形DP来做。

2,笔试题目简单粗暴的4道(Middle-Hard)糊脸,和字节的笔试一样。而且从牛客的反馈来看,笔试题目是软件开发通用的,后端(Java/C++),前端,客户端等等也都适用。牛客的网友做出来2道的居多,后面3,4能做出来一半通过率估计就能超过大片的人了。

#软件开发2024笔面经##携程##客户端##笔试#
全部评论

相关推荐

第一题:求最小插入字符‘o'的数量,使得输入的字符串有连续的you字段,比如输入yuyu,输出2,输入yuyou,输出1,输入youyou,输出0,输入yyyy输出0;第二题:有三个数组,ai,bi,ci,先输入n代表这算个数组的长度,再依次输入每个数组的数字,求使ai+bi=ci成立的i值,比如输入:41 2 3 45 6 7 80 12 8 1输出2,解释(对ci也就是第三行排序,有ci=[0,8,1,12],所以i=2);再比如输入:41 2 3 45 3 2 61 5 0 2输出2,解释,对ci进行排序,有ci=[1,5,0,2],所以i =1,这里5只能用一次,位置2用完不能给位置3再用了!!!第三题(大意):给一个数组,让这个数组中的素素两两合并,输出数组的最小长度,比如输入[1,3,2,5,4],输出3,解释:先合并3和2有[1,5,5,4]再合并5和5有[1,10,4],输出3第四题(大意,这题我没太看懂题):大意是,先定义了一个最长路径,是树中任意两个端点间的最大距离,又定义了一个f(i),表示给第i个节点,添加一个新的节点(似乎这里是新的节点,不是添加新的叶子节点)后的最长路径。输入:5(代表节点个输,5代表5个节点)1 2(代表1是2的父节点)2 3(代表2是3的父节点)3 42 5输出:(输出记不清了,印象中输出第一行是4,第2行是3(要么就是4),第三行是4(要么就是3),剩下几行不记得了)
投递携程等公司9个岗位
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务