“Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。”
前言
题主已经有段时间没有面试了,尤其是笔试,很费解,要求做笔试的公司,要么就是技术不行,就是存心想恶心一下人,题主并不是说笔试有什么问题,因为岗位有些不一样,可能存在第一定的主观性,哪怕它是客官的答案。
笔试题解析
第一题:
list=[2,3,5,4,9,6],从小到大排序,不使用sort,输出[2,3,4,5,6,9]
- 题意
它不是要求去计算ASCII值,而是纯数字的游戏,首先禁用了sort这个一步到位的方法,需要自己写。
- 解法
1、很自然的想到算法,冒泡或者选择排序法;好像有点难度
2、咱们可以换个思路,既然它都是数字,是不是可以借鉴冒泡排序的思路:
a> 第一知道list元素的最大值,range(m+1)
b> 再去遍历它,如果那个元素存在于list中,应为循环range是从0开始的,所以他是最小的
c> 最后就是最小的排最前
- 代码
list=[2,3,5,4,9,6]
m=max(list)
li2=[]
for i in range(m+1):
if i in list:
li2.append(i)
print(li2) # [2,3,4,5,6,9]
扩展:冒泡排序
def bubble_sorted(list_num):
for i in range(1, len(list_num)):
isPer = False
for j in range(len(list_num) - i):
if list_num[j] > list_num[j + 1]:
list_num[j], list_num[j + 1] = list_num[j + 1], list_num[j]
isPer = True
if not isPer:
return list_num
小结
这种排序的笔试题,一是为了了解应聘者的代码能力,二是思考问题的能力,同一个问题,会有不同的解决办法,从而可以选择更好的。