深信服笔试(2025-03-10)
填空题
Python + 数据结构 + 图形测评题 + 逻辑推理题
算法题
第一题
题目: x 的 y 次方求个位数是什么
- Python暴力计算 x ** y % 10 超时
- Java Math.pow(x, y) % 10 只过了 50%
- 找规律,只用处理个位数,个位数的n次方是存在循环的
- 0, 1, 5, 6 : 个位数必为原数
- 2, 3, 7, 8: 个位数循环{i, i * i, i * i * i, i * i * i * i}
- 4, 9: 个位数循环 {i, i * i}
第二题
题目:交换两个数组里的一个数,使两个数组和相等
- 按照题目的思路,先计算两个数组和的差值gap,两层遍历两个数组,找差值为 gap / 2的输出即可
- 只A了66%,不知道为什么
第三题
题目:字符串里的字符入栈出栈所有可能的的结果
- 深度优先,两种情况
- 当前字符入栈,位置往后推
- 当前字符出栈,位置不变
第四题
题目:吃金币,可以修改一个墙为路,求可以吃的金币最大值
- 遍历所有的墙,临时修改为路后 深度优先看可以吃多少金币,取最大值
PS: 输入给的是"[1, 2]"这种形式,可以看出来是想让我们用Python处理,但是我是一开始先用Java把算法写出来了再处理的输入,Java处理这种输入有点难评
最后,如果对你有用的话,求个花花