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多种语言分析,解答。

全部评论

相关推荐

评论
2
6
分享

创作者周榜

更多
牛客网
牛客企业服务