华为集团IT2022届春招记录
批次:2022年3月8日
招聘需求:华为2022年应届毕业生校园招聘已经启动,详情可以加群了解。选择部门&岗位:质量与流程IT部——业务应用与IT装备服务部;岗位:数字化IT应用工程师(优先,量大),算法工程师,软件开发工程师;工作地:深圳,东莞,北京;专业要求:最终面试通过的都要;学历要求:本科,硕士,博士 都要
面试流程:资格面试——>上机考试——>专业面试1——>专业面试2——>综合测评——>业务主管面试,其中:
1. 机考一共600分,100分及格,分为三道题,分别是100,200,300分,按照测试用例的通过率得分,答案可多次提交。例如做了第一道题60%,那得分60,所以拿到试卷之后浏览一下,最有把握做好哪道题就做哪道题先得分,不要在一道题上死磕,100分即可通过。
2. 两轮专业面试安排在同一天,主管面一般安排再第二天,不排除同一天的可能性。专业面试主要内容是手撕代码+实习项目讨论,主管面内容是实习项目和大学经历讨论。
代码题:
1. 机试:
①模拟题:网址shorturl.at/pxzR6
上机界面如下(点此查看原图),可以使用自己熟悉的编程语言:
三道模拟题的python代码:
# 时习知模拟题:shorturl.at/pxzR6
# 模拟-1. Words 单词权重
def func():
pass
sentenceInput = input().strip()
wordList = sentenceInput.split()
num = len(wordList)
value = (len(sentenceInput)+1-num) / num
valueOut = round(value, 2)
print(valueOut)
# please define the python3 input here. For example: a,b = map(int, input().strip().split())
# please finish the function body here.
# please define the python3 output here. For example: print().
if __name__ == "__main__":
func()
# 模拟-2. Vowel元音大写,辅音小写
def func():
s = input().strip()
out = []
for c in s:
if c in 'aeiouAEIOU':
out.append(c.upper())
else:
out.append(c.lower())
print(''.join(out))
if __name__ == "__main__":
func()
# 模拟-3.字符串全排列
# 模拟-3-1 方法一
def stringOfPermutation(str):
# 递归终止条件:长度唯一的字符串的全排序就是自身
if len(str) <= 1:
return str
# 结果,直接用set做去重
res = set()
"""
递归条件
1、i 从 0 开始遍历整个str的各个字母str[i]
2、每次都递归得到一个除自身外所有字母的全排序
3、将字母str[i]+ 得到的其他所有全排序
"""
for i in range(len(str)):
# 每一个 one_case 是 Permutation(ss[:i]+ss[i+1:]) 这个list中不同排列组合的一种case
all_case = stringOfPermutation(str[:i] + str[i + 1:])
for one_case in all_case:
res.add(str[i] + one_case)
return sorted(res)
if __name__ == '__main__':
# (94%通过,未通过用例超出CPU限制)
res = stringOfPermutation(input().strip())
print(len(res))
# 模拟-3-2 方法二
def func(word, begin, end):
if begin >= end:
perm.append(''.join(word))
else:
i = begin
for num in range(begin, end):
word[num], word[i] = word[i], word[num]
func(word, begin+1, end)
word[num], word[i] = word[i], word[num]
if __name__ == "__main__":
# (14%通过,未通过用例答案错误)
perm = []
word = list('ABA')
func(word, 0, len(word))
print(len(set(perm)))
|
②机试题:
i. 版本特性说明
代码如下:
# 2022-3-2 机试第一题
# 机试-1 版本号排序
def func():
num = int(input().strip())
vers = [input().strip() for _ in range(num)]
# 版本段填充至256位,便于统一比较
verslist = [tt.split('.') for tt in vers]
for v in range(len(verslist)):
for s in range(len(verslist[v])):
verslist[v][s] = '0' * (256 - len(verslist[v][s])) + verslist[v][s]
verslist[v] = ''.join(verslist[v])
#使用填充后的辅助列verlist对vers排序
poopsort(verslist, vers)
for ver in vers:
print(ver)
def poopsort(indexlis, lis):
# 冒泡排序,保留原始序号
for x in range(len(indexlis)):
for y in range(x+1,len(indexlis)):
if int(indexlis[x]) < int(indexlis[y]):
indexlis[x], indexlis[y] = indexlis[y], indexlis[x]
lis[x], lis[y] = lis[y], lis[x]
if __name__ == "__main__":
func()
|
ii. 餐厅预订
iii. 连连看
2. 业务面手撕代码
"""
业务面1 代码题
输入: 一组数列: 1, -2, 2, 10, -4, 6, 2 , -5
输出: 最大子数组的和: 2, 10, -4, 6, 2 的和为 16
要求: 复杂度 O(n)
"""
inList = [1, -2, 2, 10, -4, 6, 2 , -5]
# 思路: 有正有负,只要和小于0即可丢弃
length = len(inList)
sum_last = 0
ans_last = []
for i in range(length):
ans = [inList[i]]
sum_tmp = sum(ans)
while sum_tmp > 0 and i < length-1:
i = i + 1
ans.append(inList[i])
sum_tmp = sum(ans)
if sum_tmp >= sum_last:
sum_last = sum_tmp
ans_last = ans.copy()
print(ans_last, sum_last)
|
"""
业务面2 代码题
输入: 一组二维数组, 0代表陆地, 1代表海洋:
[[1,0,1],
[0,0,0],
[1,0,1]]
输出: 离所有陆地最远的海洋,到陆地的出租车距离: 离所有陆地最远的海洋是(1,1), 它到(0,0)的距离最远, 为2
"""
area = [[1,0,1], [0,0,0], [1,0,1]]
# 思路:暴力枚举
def distance(area):
i_len = len(area)
j_len = len(area[0])
last = 0 # 当前结果
one_list = [(i,j) for i in range(i_len) for j in range(j_len) if area[i][j] == 1]
zero_list = [(i,j) for i in range(i_len) for j in range(j_len) if area[i][j] == 0]
for zero_poi in zero_list:
poi_dist = 1000000 # 单个点最小距离
for one_poi in one_list:
dist = abs(zero_poi[0]-one_poi[0]) + abs(zero_poi[1]-one_poi[1])
if dist < poi_dist:
poi_dist = dist
if poi_dist > last:
last = poi_dist
if not one_list or not zero_list:
return -1
return last
distance(area)
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律