2023 腾讯笔试 腾讯音乐笔试题 0922
笔试时间:2023年9月22日 秋招
第一题
题目
小红拿到了一个正整数n,她每次操作可以删除该正整数的一个数位。小红想知道自己最少操作多少次可以使得n是5的倍数?
注:删除所有数位后正整数会变成0,所以一定有解。数据范围:1<=n<=10^9。
样例输入
52
样例输出
1
说明:只需要操作1次,删除2即可
参考题解
从后往前遍历找到到第一个可以被5整除的数。
C++:[此代码未进行大量数据的测试,仅供参考]
int fun(int n) {
std::string s = std::to_string(n);
int res = 0;
int x = s.length() - 1;
while (x >= 0) {
if ((s[x] - '0') % 5 == 0)
break;
else
x = x - 1;
res++;
}
return res;
}
Java:[此代码未进行大量数据的测试,仅供参考]
public int fun (int n) {
// write code here
String s=String.valueOf(n);
int res=0;
int x=s.length()-1;
while(x>=0){
if((s.charAt(x)-'0')%5==0)
break;
else
x=x-1;
res++;
}
return res;
}
Python:[此代码未进行大量数据的测试,仅供参考]
def fun(n):
s = str(n)
res = 0
x = len(s) - 1
while x >= 0:
if (int(s[x]) - 0) % 5 == 0:
break
else:
x = x - 1
res += 1
return res
第二题
题目
小红拿到了n个二叉树,她准备把这些二又树拼接起来。拼接的方式是:选择一个二叉树a的一个叶子,将二叉树b的根作为该叶子的左儿子或者右儿子。这样就把a和b拼接起来了。小红希望最终将这n个二叉树拼接成一个二叉树,需要满足最终二又树的高度尽可能大。小红想知道,有多少种不同的拼接方式?由于答案可能过大,请对10^9+7取模。
数据范围:所有二叉树的节点数量之和不超过200000。每个二叉树至少有一个节点,每个节点的权值随机,1<=n<=200000。
样例输入
[{1,#,2},{3.4.5}]
样例输出
6
说明:将第二个二叉树接到第一个的权值为2的叶子上面,共有2种方式。将第一个二叉树接到第二个的权值为4的叶子或者权值为5的叶子上面,共有4种方式。
参考题解
数学公式推导:有n棵树,第i棵树有ai个这样的节点。考虑第一棵树在最底下的情形,此时剩下的n-1棵树的上下排列共有n-1 !种,对于任意一种上下排列,通过改变每棵树的根节点对接的叶结点,共有(2* a
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023 秋招笔试题汇总解析 文章被收录于专栏
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。

