OPPO0309春招实习笔试真题解析(B卷)
- 2026-11-03 23:35:40
关注我们,每周更新两到三次大厂最新笔试题解析
前言
本次笔试难度适中,第一题是比较偏送分的;第二题需要一些数学推导,毕竟考察逻辑;第三题是几何题,跟算法其实关系不是很大。
春招和暑期实习的笔试也陆陆续续开始啦,有参加笔试的同学欢迎投稿哦,投稿一场完整笔试的(题面+代码),请你喝一周的奶茶的现金奖励哦!(投稿加文末微信,备注投稿)
文末也有我们的活动介绍,有兴趣参加活动也可以添加微信了解滴!
小欧新建文件夹
小欧在创建文件夹,需要输入文件夹的名字。比如先创建名字为“abc”的文件夹,那么此时就有一个文件夹名字为“abc”。如果存在相同名字的文件夹,则在名字后面加上一个正整数,比如“abc”已经存在,那么此时创建的文件夹名字为“abc(1)”。如果“abc(1)”也存在,那么此时创建的文件夹名字为“abc(2)”。以此类推。请你帮助小欧创建文件夹。
输入描述
第一行输入一个正整数n,表示创建文件夹的数量。
接下来n行,每行输入一个仅包含小写字母的字符串,表示要创建的文件夹名字,字符串长度不超过 10。
1<=n<=10^4
输出描述
输出n行,每行输出一个字符串,表示创建的文件夹名字。
示例 1
输入
5
abc
abc
abc
vfd
dsf
输出
abc
abc(1)
abc(2)
vfd
dsf
思路与代码
打卡题。只需要用哈希表来统计每一个字符串已经出现的次数即可。
n,a,d = map(int, input().split())
if d%2==0:
print((n-1)*d + 1)
else:print(n)
小欧的等差数列
小欧有一个长度为n,首项为a,公差为d的等差数列。即a,a+d,a+2d,...,a+(n-1)d。现在,小欧把这n个数看作一个集合,每次操作可以从集合中任意选两个数ai,aj,如果 ai+aj是偶数,那么可以将(ai+aj)/2 加入到集合中。小欧想知道,经过若干次操作后,集合中最多能有多少个数。
输入描述
一行三个整数n,a,d,表示等差数列的长度,首项和公差。
1<=n<=10^5
1<=a,d<=10^9
输出描述
输出一个整数,表示集合中最多能有多少个数。
示例 1
输入
5 1 2
输出
9
说明
一开始集合为[1,3,5,7,9},选择相邻两项,可以得到[1,2,3,4,5,6,7,8,9]
思路与代码
数学题。
我们将上述例子抽象一下,假设差值是奇数,那么我们观察一下这个:
a .... a+b .... a+2b ....
不难发现,上述的....必然是偶数个,那么无论你取哪几个数来除以2,结果一定是落在原有的数上的。
那如果差值是偶数, .... 必然是奇数个,那么相隔的两个数一定可以生成一个新的中间的数字,此时新的数列一定也是等差数列,那么差值会变为原来的一半。此时差值依然遵循上述的规律。
n,a,d = map(int, input().split())
cnt = n
while d%2==0:
cnt += cnt - 1
d//=2
print(cnt)
小欧的弹球
给定两个互相垂直的墙壁,可视为x轴和y轴的正半轴。小欧目前在(x0,y0)上面放置了一个弹球,她希望两个墙壁各弹一次后到达(x1,y1),小欧可以自行选择弹球发射的方向,你能帮小欧求出第一次碰到的墙壁时的弹球坐标吗?
提示:当球碰到墙壁时,它将和法线对称的方向弹出。
输入描述
四个正整数x0,y0,x1,y1,分别代表弹球的起始点和目标点。
12x0,y0,x1,y1210^9
输出描述
两个浮点数,分别代表第一次碰到墙壁的横坐标和纵坐标。如果你输出的答案精度和标准答案的相对误差不超过10^-6,则认为你的答案正确。
示例 1
输入
1 1 2 1
输出
0 0.33333333
说明
如下图,第一次碰到墙壁的坐标为(0,1/3)

思路与代码
三角函数的应用。

根据光的反射,不难推导出α+β=90°,因此有tanα = cotβ。
假设点为(0,b),必然有以下公式:
cotα = (y0-b)/x0
tanβ = y1 / (x1 - (b*x0)/y0-b)
联立即可求解。
x1,y1,x2,y2 = map(int, input().split())
print(0,(y1*x2 - x1*y2) / (x1+x2))
最后插一下我们的进阶一对一辅导啦
我们是一个针对技术岗(前后端开发、测试、测开、大数据开发)校招一对一进阶提高的工作室。我们从2020年2月份开始,迄今整整三年的时间,带领300+学员斩获1500+大厂offer,参加活动的同学人均5个中大厂offer以上,以下是我们活动内容的介绍! 万诺coding
我们主要是针对有一定基础的同学提供一对一笔试和面试辅导,针对每个同学不同的情况定制内容,包括但不限于“数据结构与算法”/“计算机基础知识”/“项目梳理”/“面试技巧”/“面试复盘”等内容。
摸底测试:如果有兴趣深入了解我们的活动,需要先参加我们的“摸底测试”(类似面试),方便我们了解你的具体情况(主要是code能力和计算机素养),定制出相应的辅导计划。同时这也是一个双向筛选的过程,如果基础过差的同学,抱歉我们可能无法辅导(基础过差的同学一对一辅导成本过高,对双方都不适合);摸底测试通过的同学,我们会定制化一个针对性的提高计划。然后你再考虑是否参加我们的活动。
承诺保offer:通过摸底测试后,我们会针对每个同学的情况给定一个“保offer”计划。然后同学可以根据自己的实际情况考虑参不参加我们的活动。
有兴趣的同学可以扫码添加我们的微信(whynotlab)