岗位
c++客户端研发工程师-Flow
试卷类型
字节跳动2024春招研发第四场笔试【客户端方向】
题目分配
4 道编程题。
作答时间
120 分钟
做题感受
- 整体中等偏难
- 第一题较为简单,主要是处理输入
输入形为
[1,2,3,4]的 $n$ 个数组,返回从大到小排序的合并数组 - 第二题为前缀和+滑动窗口
给你一个数组,你可以选择其中的一个区间,并将区间中的每个字符翻转,(定义翻转一个数字指数字正着读变成倒着读,例如”1234”变成”4321”、”1430”变成”341”,不包含前导零)求操作后区间和最大可能值。
不知道为什么只A了6%点几,可能是实现上有问题。
- 第三题DFS
给你给你一个字符矩阵,只允许你走”日”字,类似象棋中的马,(如果当前的坐标是 $(x_0, y_0)$ ,那么落点的坐标 $(x,y)$ 必须满足$|x-x_0| +|y-y_0|= 3\ ( x≠x0,y≠y0)$你可以任选起点,问有多少种走的方案使得路径字符串为”byte”。
- 第四题排列组合
给你一个长度为n且仅包含”red”三种字符的字符串,给出q次询问,每次给出l,r,每次询问让你求出所给区间重新排列后能够组成的不同回文字符串的个数。
我的思路是查询区间三种字符的个数,然后通过排列组合公式计算出所有不同回文字符串的个数。可惜最后时间不够了,当时回忆排列组合想了好一阵子,编码速度还是需要提升一下。