腾讯云智笔试,比较灵活(春招实习笔试真题解析)
- 2026-11-07 04:01:40
关注我们,每周更新两到三次大厂最新笔试题解析
前言
本次题目难度不大,但是题目比较灵活。第1题比较偏向打卡题。第2题和第3题则是比较倾向于思维,需要大家对题目的性质做一定的分析,比较考察逻辑推理能力。
腾讯云智的笔试好像是一个比较长的有效期,然后随机抽题的,大家可以借鉴一下,说不定就抽到原题了呢,其实腾讯云智这个公司的面试难度向来都是overplay的,大家可以去感受一下。
春招和暑期实习的笔试也陆陆续续开始啦,有参加笔试的同学欢迎投稿哦,投稿一场完整笔试的,有请你喝一周的奶茶的现金奖励!(投稿加文末微信,备注投稿)
文末也有我们的面向校招的一对一活动介绍,有兴趣参加活动也可以了解一下!
题目一
题目描述
给定两个正整数a和b,请你找到一个非负整数x满定0 < x<= b,使得x与a的异或值最大,异或指的是位运算中的异或,对两个二进制数字的每一位进行运算,若两位相同,则异或后的值为 0,否则为 1。例如(1010)2 ^ (0011)2 =(1001),其中^为异或运算。
输入描述
输入一行包含两个正整数 a,b(1 <= a,b<=1e9)
输出描述
输出一行一个正整数表示异或的最大值。
示例1
输入
3 6
输出
7
说明
从0~ 6中选择一个数字4,4和3异或得到7,这是最大的异或结果。
思路与代码
按位贪心。从最高位开始考虑如果当前位是0,则从y中取出相应的数值。如果当前位是1,则不取。
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int x= sc.nextInt();
int y= sc.nextInt();
for (int i = 30; i >= 0; i --){
if((x >> i & 1) == 0){
if(y >= (1 << i)){
x |= (1 << i);
y -= (1 << i);
}
}
}
System.out.println(x);
}
}
题目二
题目描述
有m个苹果,n个小孩。每个小孩都有一个编号1-n,小明的编号是k。要尽量公平的分苹果,相邻编号的小孩分到的苹果数目差距不能大于1。请问如何在满足相邻编号的小孩分到的苹果数目差距不能大于1的情况下,小明分配到的苹果数目最多,并且输出这个最大值,每个小朋友至少需分配到一个苹果。
输入描述
第一行三个整数n,m,k(1≤n≤m≤1e9,1≤k≤n)
输出描述
输出一行,表示小明分配到苹果个数的最大值。
示例1
输入
4 6 2
输出
2
说明
可以这样分配1 2 2 1,可以小明分配到了2个苹果
思路与代码
考虑小明得到的苹果是x 那么从左到右最少为 1,2,3.... ,x - 3, x - 2, x-1, x, x - 1.....1。则最少为(1 + x) * k / 2 + (1 + x) * (n - k +1) / 2 - x,记为w。若w不足m个,则可为每个小朋友分配(w - m) / n 。若w超过m个,每个让小明得到1个苹果切满足要求的至少需要的苹果是多少。模拟即可。
复杂度o(sqrt(n))。
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int k = sc.nextInt();
int ans = 1;
m -= n;
int l = k - 1;
int tmpl = 0;
int r = n - k;
int tmpr = 0;
while (true) {
int need = tmpl + tmpr + 1;
if (m >= need) {
ans++;
m -= need;
} else {
break;
}
if (tmpl < l) tmpl++;
if (tmpr < r) tmpr++;
if(tmpl == l && tmpr == r){
ans += m / n;
break;
}
}
System.out.println(ans);
}
}
题目三
题目描述
给定一个字符串,请你求出有多少个连续子串包含‘r'和'e'字符但不包含'd'字符?
输入描述
一个仅包含小写字母的字符串,长度不超过300000.
输出描述
满足条件的连续子串数量。
示例
输入
raefadr
输出
3
说明
共包含三个连续子串:“rae","raef、"raefa”。
思路与代码
首先考虑不出现'd'字符,则在不出现d的子串考虑出现'r'和'e‘连续子串的个数。考虑最右边的字符是什么,若当前字符为'r',那么只需要找到最后出现的'd',则之前的位置都满足要求,同理若出现的字符为’d',找到最后出现‘r’,之前的位置都满足。若当前字符不是'r'和'd',那么就要找到最后'r'和'd'出现位置的较小值,则之前的位置都满足要求。
复杂度o(n)。n为字符串长度。
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int last = -1;
long ans = 0;
for (int i = 0; i < s.length(); ){
if(s.charAt(i) == 'd') {
i ++;
continue;
}
int j = i;
while(j < s.length() && s.charAt(j) != 'd') j ++;
int lastx = -1;
int lasty = -1;
for (int k = i; k < j; k ++){
if(s.charAt(k) == 'r'){
if(lasty != -1){
ans += lasty - i + 1;
}
lastx = k;
}else if(s.charAt(k) == 'e'){
if(lastx != -1){
ans += lastx - i + 1;
}
lasty = k;
}else{
int z = Math.min(lastx, lasty);
if(z != -1){
ans += z - i +1;
}
}
}
i = j;
}
System.out.println(ans);
}
}
最后插一下我们的进阶一对一辅导啦
我们是一个针对技术岗(前后端开发、测试、测开、大数据开发)校招一对一进阶提高的工作室。我们从2020年2月份开始,迄今整整三年的时间,带领300+学员斩获1500+大厂offer,参加活动的同学人均5个中大厂offer以上,以下是我们活动内容的介绍! 万诺coding
我们主要是针对有一定基础的同学提供一对一面试辅导,针对每个同学不同的情况定制内容,包括但不限于“数据结构与算法”/“计算机基础知识”/“项目梳理”/“面试技巧”/“面试复盘”等内容。
摸底测试:如果有兴趣深入了解我们的活动,需要先参加我们的“摸底测试”(类似面试),方便我们了解你的具体情况(主要是code能力和计算机素养),定制出相应的辅导计划。同时这也是一个双向筛选的过程,如果基础过差的同学,抱歉我们可能无法辅导(基础过差的同学一对一辅导成本过高,对双方都不适合);摸底测试通过的同学,我们会定制化一个针对性的提高计划。然后你再考虑是否参加我们的活动。
承诺保offer:通过摸底测试后,我们会针对每个同学的情况给定一个“保offer”计划。然后同学可以根据自己的实际情况考虑参不参加我们的活动。
有兴趣的同学可以扫码添加我们的微信(whynotlab)