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秋招各大笔试题汇总,c++,java,python多种语言分析,解答。