【华为OD机试Python实现】华为 OD 开发岗面经分享

阅读 108

2022-03-30



文章目录

  • ​​BOSS沟通​​
  • ​​机试​​
  • ​​第一道​​
  • ​​第二道​​
  • ​​第三道​​
  • ​​综合测评​​
  • ​​技术一面​​
  • ​​面试官提问:​​
  • ​​手撕代码:​​
  • ​​提问环节:​​
  • ​​技术二面​​
  • ​​面试官提问:​​
  • ​​手撕代码:​​
  • ​​HR面​​
  • ​​主管面​​

笔者二本网络专业,5年工作经验,面试HCS Python开发工程师岗位,面试流程中每个环节的面试官都非常的友好。

BOSS沟通

以为只是简单的沟通,没想到第二天直接收到了机试预约邮件。。。

这里需要提前和对接人确认好部门,流程开始后不能变更面试的部门。

机试

三道题相对比较简单

第一道

通过率90.48%

输入第一行 m 数组个数,第二行 m 个整型数组,第三行 n; 要求输出最大N个数和最小N个数的和,如果去重后结果不满足最大N个数和最小N个数输出-1。

问题比较简单但是通过率始终没有100%,最后选择放弃了。

第二道

通过率100%

输入形如 AB-ABC-cABd-Cb@的字符串,输入待分隔长度k; 要求输出保留第一个“-”前面的字符串格式,后面的每k个字符一分格,每三个字符中,大写字母数多的三个字母大写,小写字母数多的三个字母转小写,一样多的不处理。

第三道

通过率100%

树形目录,m行输入,[当前目录ID 父级目录ID]。最后一行为待删除目录ID,要求删除父级同时删除下级目录。 输出剩余目录。

综合测评

技术一面

面试官提问:

面试官上来直接让介绍项目经验,我还是做了下简单的自我介绍,然后对项目背景、设计做基本的介绍;

面试官基本上都是在问项目中相关的问题:

  1. 如何实现的负载均衡配置
  2. 服务发现注册原理
  3. 服务发现注册优化
  4. 日志服务为什么要在logstash前增加一个MQ
  5. 如何实现的实现配置服务
  6. 如何实现的实现并发处理
  7. 协程、进程的区别
  8. 是根据什么设置的最大进程数

手撕代码:

实现一个函数,返回两个超大整形a和b相加的结果

输入和返回均为字符串

调用者保证输入合法(不会有负数,不会有非法字符)

不允许直接通过string(int(a) + int(b))返回结果

示例:输入"1111111111",“2222222222”, 返回"3333333333"

之前在牛客上刷到过大数计算,直接就使用 eval 提交了,大家刷题时还是要认真对待啊

def add(a, b):
max_lens = max(len(a), len(b))

a = a.zfill(max_lens)
b = b.zfill(max_lens)

ret = ""
dp = 0

while max_lens > 0:
max_lens -= 1
temp = int(a[max_lens]) + int(b[max_lens]) + dp
if temp >= 10:
dp = 1
ret += str(temp % 10)
else:
dp = 0
ret += str(temp)
if dp == 1:
return "1" + ret[::-1]
else:
return ret[::-1]


if __name__ == '__main__':
print(add("111", "9"))

提问环节:

  • 入职后主要的工作内容
  • 更好的胜任工作还需要掌握什么技术

技术二面

面试官提问:

  1. 介绍下项目经历
  2. 使用Python有几年?
  3. 只会Python么?
  4. 这么项目的自己编写的代码量有多少?
  5. 对面向对象设计了解多少?
  6. 最近在看什么书?

手撕代码:

给一个100* 100二维整型数组,在二维数组上随机分布着0和1的值。需要提供测试用例,说明测试的场景。

输入: x, y

输出: x, y 坐标,周边一圈中有几个值为1

要求:给出测试用例并说明用例测试的场景。

def dfs(lst, x, y):
count = 0
for i in range(x-1, x+1+1):
for j in range(y-1, y+1+1):
# 中心点
if i == x and j == y:
pass
elif 0 <= i < len(lst) and 0 <= j < len(lst[0]):
count += lst[i][j]
return count


if __name__ == '__main__':
lst = [
[1, 1, 1, 0],
[1, 1, 1, 1],
[1, 0, 1, 1],
[1, 1, 1, 1],
]
# x, y = 1, 2
# x, y = 1, 3
# x, y = 3, 3
# x, y = 4, 4
# x, y = 5, 5

HR面

  1. 要求介绍一下大学以来的经历
  2. 任职经历中有管理职务,被问到主要从事管理还是开发
  3. 对其中的一个项目经验要求详细介绍一下如何设计实现
  4. 被问93年出生,12年上大学,为什么19岁才上大学
  5. 未来的职业规划
  6. 对互联网公司的工作强度有了解么

主管面

  1. 做下自我介绍
  2. 详细介绍一个主要参与的项目
  3. 对几大云平台的了解
  4. 未来的职业规划
  5. 主管介绍了下定级、绩效考评、薪资结构、薪资


精彩评论(0)

0 0 举报