Shopee 2021春招后端笔试新鲜回忆录
(⑉・̆-・̆⑉)
准备(基本是零准备)
之前正值 《和平精英》 SS12赛季尾声,因此不学无术的我又开始了赛季末的冲分之路,全然忘了自己在准备春招海投的事儿,所幸最后冲到了王牌12🌟(不是这样的,你听我狡辩),也算是为废物的生活提供了一点幸福(也没有)。
2021.04.20 14:33:55 我收到Shopee笔试的通知,然而此时的我基本上只刷了20道算法题,加上一周前潦潦草草看了 计算机网络 ,操作系统 ,数据库 的一些基础知识(还是有点用的),于是我在当天晚上找了虾皮的一些笔试经验和面经(感觉没啥用,但是也不是没啥用,编程题第一题竟然是2020年笔试的第一题😢,我直接就好家伙!)
笔试内容为 选择 * 15 + 编程 * 3
选择
# 按题号顺序
- 堆排序是什么排序
- HTTP状态码考察
- 死锁
- 依赖注入
- 二分查找的时间复杂度
- 事务的四大特性
- hashmap的底层原理
- HTTP和HTTPS的区别
- 链表用什么排序好
- 多态机制的作用
- 关于Java异常
- 给定Java代码,判断输出内容
- 面向对象
- hash冲突的解决
- 数据库索引
编程(贴上来的代码就是我提交的代码)
因为可以在本地编译调试再上传,我直接把题目都复制到了本地 ⑅︎◡̈︎*
""" 第一题:上台阶的游戏 详细描述 一个上台阶的游戏,如果每次只能上1步或者2步;那么一个n级的台阶一共有多少种上法? 要求时间占用、空间占用尽量少,复杂度尽量低。 其他 时间限制: 1000ms 内存限制: 256.0MB 输入输出描述 输入描述:一个整数 输出描述:一个整数 输入输出示例 输入 n = 1 输出 f(n) = 1 """n = int(input().replace("n = ", "")) if n <= 0: print(f'f(n) = 0') elif n == 1: print(f'f(n) = 1') else: result = [1] * (n+1) for i in range(2, n+1): result[i] = result[i - 1] + result[i - 2] print(f'f(n) = {result[-1]}')# 斐波那契数列(另一种解法) def jump_floor(n): dom = math.sqrt(5) return int( (numpy.power((1 + dom) /2, n) - numpy.power((1 - dom) / 2, n)) / dom)
""" 第二题:字符串包含 详细描述 我们定义字符串包含关系:字符串A=abc,字符串B=ab,字符串C=ac,则说A包含B,A和C没有包含关系。 其他 时间限制: 1000ms 内存限制: 256.0MB 输入输出描述 输入描述:两个字符串,判断这个两个字符串是否具有包含关系,测试数据有多组,请用循环读入。 输出描述:如果包含输出1,否则输出0 """str1, str2 = input().split() print(1) if (str2 in str1) or (str1 in str2) else print(0)
""" 第三题:找出数组所有可能的子集 详细描述 给出一个整数数组 nums ,数组中的元素互不相同 。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。请按字典顺序返回解集。 其他 时间限制: 1000ms 内存限制: 256.0MB 输入输出描述 输入描述:输入一个含有不同元素的整型数组 输出描述:按字典顺序输出所有可能的幂集 """line = input().replace("[", "").replace("]", "") nums = line.split(",") nums = list(map(int, nums)) result = [[]] n = len(nums) for num in nums: result += [item + [num] for item in result] print(result) """ 好难啊,做不出来,无法按照字典顺序输出,搞了半天直接给我送走,上面是我的方法,但是无法通过测试用例 """