腾讯音乐笔试

第一题:字符串
给定一个只包含小写字母字符串,每次可以选择两个相同的字符删除,并在字符串结尾新增任意一个小写字母。
请问最少多少次操作后,所有的字母都不相同?

字符串长度<1e3

input:
abab

output:
2

第一次把2个a变成f,第二次把2个b变成b。得到fb,每个字母都不相同,最少操作次数为2。

public static int minOperations (String str) {
    int[] nums = new int[26];
    for (int i = 0; i < str.length(); i++) {
        nums[str.charAt(i) - 'a']++;
    }
    int cnt = 0, kinds = 0;
    for (int i = 0; i < 26; i++) {
        cnt += nums[i] / 2;
        kinds += nums[i] % 2;
    }
    if (cnt + kinds <= 26) {
        return cnt;
    } else {
        int a = 26 - kinds;
        return 2 * cnt  - a;
    }
}
第二题:
题目描述
已知一个二叉树的先序遍历序列和中序遍历序列,但其中一些节点的值可能相同。
请你返回所有满足条件的二叉树。二叉树在数组中的顺序是任意的。

input:
[1,1,2],[1,2,1]

output:
[{1,1,#,#,2},{1,#,1,2}]

public ArrayList<TreeNode> getBinaryTrees (ArrayList<Integer> preOrder, ArrayList<Integer> inOrder) {
    ArrayList<TreeNode> temp = dfs(preOrder, inOrder);
    System.out.println(temp.size());
    return temp;
}

public ArrayList<TreeNode> dfs(ArrayList<Integer> preOrder, ArrayList<Integer> inOrder) {
    ArrayList<TreeNode> ans = new ArrayList<>();
    if (inOrder.size() == 0) {
        return ans;
    }
    int rootVal = preOrder.get(0);
    for (int i = 0; i < inOrder.size(); i++) {
        int k = inOrder.get(i);
        if (rootVal == k) {
            ArrayList<Integer> inOrderLeft = new ArrayList<>();
            ArrayList<Integer> inOrderRight = new ArrayList<>();
            ArrayList<Integer> preOrderLeft = new ArrayList<>();
            ArrayList<Integer> preOrderRight = new ArrayList<>();
            if (i > 0) {
                int sum = 0;
                for (int z = 0; z < i; z++) {
                    inOrderLeft.add(inOrder.get(z));
                    sum += inOrder.get(z);
                }
                for (int z = 1; z <= i; z++) {
                    preOrderLeft.add(preOrder.get(z));
                    sum -= preOrder.get(z);
                }
                if (sum != 0) {
                    continue;
                }
            }
            if (i < inOrder.size()) {
                for (int z = i + 1; z < inOrder.size(); z++) {
                    inOrderRight.add(inOrder.get(z));
                    preOrderRight.add(preOrder.get(z));
                }
            }
            List<TreeNode> left = dfs(preOrderLeft, inOrderLeft);
            List<TreeNode> right = dfs(preOrderRight, inOrderRight);
            if (left.size() > 0 && right.size() > 0) {
                for (TreeNode l : left) {
                    for (TreeNode r : right) {
                        TreeNode root = new TreeNode(rootVal);
                        root.left = l;
                        root.right = r;
                        ans.add(root);
                    }
                }
            } else if (left.size() > 0) {
                for (TreeNode l : left) {
                    TreeNode root = new TreeNode(rootVal);
                    root.left = l;
                    ans.add(root);
                }
            } else if (right.size() > 0) {
                for (TreeNode r : right) {
                    TreeNode root = new TreeNode(rootVal);
                    root.right = r;
                    ans.add(root);
                }
            } else {
                TreeNode root = new TreeNode(rootVal);
                ans.add(root);
            }

        }
    }
    return ans;
}

第三题:不会


#腾讯音乐娱乐笔试##腾讯音乐2023秋招笔试心得体会#
全部评论
第二题没看懂大大的思路
点赞 回复 分享
发布于 2022-09-09 00:55 广东
求文字思路
2 回复 分享
发布于 2022-09-09 05:40 江苏
面试了么老哥
点赞 回复 分享
发布于 2022-09-26 13:12 辽宁
有进面了吗
点赞 回复 分享
发布于 2022-09-23 22:41 广东
第三题是递归,递归函数的输入是根节点,递归的返回值是当前节点的左右子树权值和: left1 = dfs(root.left) right1 = dfs(root.right) 如果left1更大,那么root.left.val=1,root.right.val=(left1+1-right1) 如果right1更大,那么root.right.val=1,root.left.val=(right1+1-left1) 如果两者相等,那么root.right.val=1,root.left.val=1 递归返回return root.left.val+left1+root.right.val+right1 最终返回 (dfs(root)+1)%(10**9+7)
点赞 回复 分享
发布于 2022-09-09 10:41 甘肃
我超校友,加个v?
点赞 回复 分享
发布于 2022-09-09 08:14 广东

相关推荐

03-25 14:47
已编辑
门头沟学院 Java
实习项目拷问实习期间项目挑一两个重点说一下如何定位慢sql这是一个什么联合索引为什么不给中间的status的填进去?好问题表的数据量有没有分表,怎么分表?按月分表,那么分页查询怎么查?前端有传时间范围单表查询时长?10ms到50ms深分页怎么处理?缓存优化怎么做的?主动更新缓存失败?主动更新的并发问题?用的是什么消息队列?消息丢失怎么处理?这个系统可用性如何考虑的?定时脚本:解决入队失败,以及消费这个回调失败&nbsp;,缓存降级缓存命中率?基础知识服务器如何识别http的请求头和请求体的?cookie在http中如何传输&nbsp;?如何实现一个线程安全的任务队列?数据库为什么要有连接池?刚才你说到数据库连接池为了防止链接频繁的创建销毁,那么像http服务器,rpc服务器他们的连接就是频繁创建和销毁没有连接池,那为什么数据库需要连接池呢?答:因为数据库连接是昂贵、有状态、数量有限的资源,而&nbsp;HTTP/RPC&nbsp;是轻量、无状态、可快速销毁的,所以数据库必须用连接池来复用,HTTP&nbsp;不需要。1.&nbsp;连接成本完全不一样HTTP&nbsp;连接:只是一个&nbsp;TCP&nbsp;短连接,用完就断,没有状态、没有认证、没有会话上下文,创建销毁非常轻。就算用&nbsp;HTTP&nbsp;长连接,也是复用&nbsp;TCP,不是复用业务状态。数据库连接:是有状态的重量级连接:TCP&nbsp;握手&nbsp;+&nbsp;用户名密码验证&nbsp;+&nbsp;权限检查&nbsp;+&nbsp;会话初始化(事务、锁、缓存区)。这个成本是&nbsp;HTTP&nbsp;的&nbsp;几十倍上百倍。2.&nbsp;生命周期完全不同HTTP&nbsp;请求:一次请求一次连接,用完即丢,非常短暂。数据库连接:一旦建立,可以持续复用很久,完全没必要每次执行&nbsp;SQL&nbsp;都重新建连接。3.&nbsp;数据库对连接数量极其敏感数据库有严格连接上限(MySQL&nbsp;默认&nbsp;151)。连接多了,数据库会:内存暴涨、线程爆炸、锁冲突、直接夯死。而&nbsp;HTTP&nbsp;服务器扛几万连接都没事,因为它是非阻塞、IO&nbsp;多路复用,不占很重的资源。算法题:数组平方后的不同数
查看21道真题和解析
点赞 评论 收藏
分享
2027&nbsp;届大学生的工作福利,主要分为国家政策类福利、企业常规福利、行业&nbsp;/&nbsp;企业特色福利三大类,整体呈现&nbsp;“基础保障更稳、成长激励更足、生活配套更全”&nbsp;的特点。一、国家层面政策福利(全国统一)就业补贴与社保支持社会保险补贴:离校&nbsp;2&nbsp;年内未就业的&nbsp;2027&nbsp;届毕业生,灵活就业后缴纳社保,可获不超过实际缴费&nbsp;2/3&nbsp;的补贴,最长&nbsp;2&nbsp;年。基层就业激励:参加&nbsp;“三支一扶”、西部计划、特岗教师等,服务期满可享考研加分、公务员定向招录、事业单位专项招聘;同时落实学费补偿、助学贷款代偿、高定工资、提前转正定级。应征入伍福利:学费补偿&nbsp;/&nbsp;助学贷款代偿、退役后考研加分、研究生&nbsp;/&nbsp;专升本单列计划,服役经历算基层工作经历。企业吸纳优惠:企业招用&nbsp;2027&nbsp;届毕业生,可享税收减免、社保补贴、创业担保贷款贴息等。落户与人才安居多数一二线城市对&nbsp;2027&nbsp;届应届生开放直接落户&nbsp;/&nbsp;快速落户通道(如上海、杭州、成都、重庆等)。多地提供人才公寓、租房补贴、购房补贴&nbsp;/&nbsp;契税减免(如深圳、广州、南京、武汉等)。二、企业常规福利(校招标配)基础保障类五险一金&nbsp;/&nbsp;六险二金:央国企普遍六险二金(养老&nbsp;/&nbsp;医疗&nbsp;/&nbsp;失业&nbsp;/&nbsp;工伤&nbsp;/&nbsp;生育&nbsp;+&nbsp;补充医疗,公积金&nbsp;+&nbsp;企业年金),公积金多按12%&nbsp;顶格缴纳;互联网&nbsp;/&nbsp;民企多为五险一金,公积金&nbsp;5%–12%。带薪假期:法定年假、病假、婚假、产假&nbsp;/&nbsp;陪产假、探亲假等。年度体检:常规体检&nbsp;+&nbsp;部分企业提供高端体检&nbsp;/&nbsp;家属体检。现金补贴类餐补&nbsp;/&nbsp;交通补&nbsp;/&nbsp;通讯补:每月固定发放,合计约&nbsp;500–2000&nbsp;元。节日福利:春节、端午、中秋等节日礼金&nbsp;/&nbsp;礼品,生日福利。高温&nbsp;/&nbsp;低温&nbsp;/&nbsp;出差&nbsp;/&nbsp;驻外补贴(视岗位)。生活配套类住宿&nbsp;/&nbsp;住房支持:部分企业提供免费宿舍&nbsp;/&nbsp;人才公寓(如华为、比亚迪、中广核、央企工程岗);或住房补贴&nbsp;/&nbsp;租房补贴。免费班车、健身房、食堂、下午茶(互联网&nbsp;/&nbsp;大厂常见)。三、行业&nbsp;/&nbsp;企业特色福利(2027&nbsp;届校招亮点)1.&nbsp;央国企&nbsp;/&nbsp;政策行(稳定&nbsp;+&nbsp;高福利)薪资:本科&nbsp;12–22&nbsp;万&nbsp;/&nbsp;年,硕士&nbsp;18–30&nbsp;万&nbsp;/&nbsp;年,博士&nbsp;25–40&nbsp;万&nbsp;+,核心岗上不封顶。福利:六险二金、补充医疗、职工宿舍、带薪年假、探亲假、高原&nbsp;/&nbsp;艰苦补贴、安家费、年终奖、项目奖金。发展:完善培训、双通道晋升、优先参与国家重大项目。代表:中国雅江、中国长安、中国兵器、中广核、国家开发银行等。2.&nbsp;互联网&nbsp;/&nbsp;科技大厂(高薪&nbsp;+&nbsp;成长&nbsp;+&nbsp;股权激励)薪资:本科&nbsp;15–30&nbsp;万&nbsp;/&nbsp;年,硕士&nbsp;20–40&nbsp;万&nbsp;+,博士&nbsp;35&nbsp;万&nbsp;+,核心&nbsp;AI&nbsp;/&nbsp;大模型岗更高。特色:股票&nbsp;/&nbsp;期权&nbsp;/&nbsp;虚拟股激励(如字节&nbsp;“豆包股”)、超长带薪年假、免费三餐&nbsp;/&nbsp;下午茶、健身房、育儿假、员工持股计划。代表:字节、百度、阿里、腾讯、华为、拼多多等。3.&nbsp;新能源&nbsp;/&nbsp;智能制造(高增长&nbsp;+&nbsp;补贴)薪资:本科&nbsp;15–25&nbsp;万&nbsp;/&nbsp;年,硕士&nbsp;20–35&nbsp;万&nbsp;+,博士&nbsp;30&nbsp;万&nbsp;+。福利:六险二金、员工宿舍、餐补、交通补、项目奖金、股权激励、购房补贴。代表:比亚迪、宁德时代、蔚来、理想、小鹏、特斯拉等。4.&nbsp;金融&nbsp;/&nbsp;证券&nbsp;/&nbsp;投行(高薪&nbsp;+&nbsp;资源)薪资:本科&nbsp;18–30&nbsp;万&nbsp;/&nbsp;年,硕士&nbsp;25–40&nbsp;万&nbsp;+,博士&nbsp;35&nbsp;万&nbsp;+,年终奖丰厚。福利:六险二金、补充医疗、交通&nbsp;/&nbsp;通讯&nbsp;/&nbsp;餐补、节日福利、带薪年假、体检、员工宿舍&nbsp;/&nbsp;住房补贴。代表:中信、中金、华泰、国泰君安、四大会计师事务所等。5.&nbsp;科研&nbsp;/&nbsp;高校&nbsp;/&nbsp;事业单位(稳定&nbsp;+&nbsp;编制&nbsp;+&nbsp;学术资源)福利:编制&nbsp;/&nbsp;员额制、五险一金&nbsp;/&nbsp;六险二金、寒暑假、科研经费、安家费、人才补贴、子女教育、住房补贴。代表:高校、中科院、国家重点实验室、科研院所等。四、2027&nbsp;届专属福利趋势实习转正率提升:国资委要求央企实习转正比例≥60%,头部央企(国家电网、中国海油等)达&nbsp;68%–75%;互联网大厂半数&nbsp;HC&nbsp;来自实习转正。提前培养计划:如中广核&nbsp;“联合培养”,提供生活津贴、缩短试用期、联培计入工龄。AI&nbsp;/&nbsp;大模型专项激励:字节等为&nbsp;2027&nbsp;届&nbsp;AI&nbsp;人才提供专属股权激励、高起点岗位、核心项目参与权。灵活办公与福利升级:更多企业开放远程&nbsp;/&nbsp;混合办公、育儿支持、心理健康服务、家属福利。
点赞 评论 收藏
分享
评论
5
19
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务