笔者二本网络专业,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,要求删除父级同时删除下级目录。 输出剩余目录。
综合测评
技术一面
面试官提问:
面试官上来直接让介绍项目经验,我还是做了下简单的自我介绍,然后对项目背景、设计做基本的介绍;
面试官基本上都是在问项目中相关的问题:
- 如何实现的负载均衡配置
- 服务发现注册原理
- 服务发现注册优化
- 日志服务为什么要在logstash前增加一个MQ
- 如何实现的实现配置服务
- 如何实现的实现并发处理
- 协程、进程的区别
- 是根据什么设置的最大进程数
手撕代码:
实现一个函数,返回两个超大整形a和b相加的结果
输入和返回均为字符串
调用者保证输入合法(不会有负数,不会有非法字符)
不允许直接通过string(int(a) + int(b))返回结果
示例:输入"1111111111",“2222222222”, 返回"3333333333"
之前在牛客上刷到过大数计算,直接就使用 eval 提交了,大家刷题时还是要认真对待啊
题解见:【华为机试真题 Python实现】两个超大整型数相加
提问环节:
- 入职后主要的工作内容
- 更好的胜任工作还需要掌握什么技术
技术二面
面试官提问:
- 介绍下项目经历
- 使用Python有几年?
- 只会Python么?
- 这么项目的自己编写的代码量有多少?
- 对面向对象设计了解多少?
- 最近在看什么书?
手撕代码:
给一个100* 100二维整型数组,在二维数组上随机分布着0和1的值。需要提供测试用例,说明测试的场景。
输入: x, y
输出: x, y 坐标,周边一圈中有几个值为1
要求:给出测试用例并说明用例测试的场景。
题解见:【华为机试真题 Python实现】数格子
HR面
- 要求介绍一下大学以来的经历
- 任职经历中有管理职务,被问到主要从事管理还是开发
- 对其中的一个项目经验要求详细介绍一下如何设计实现
- 被问93年出生,12年上大学,为什么19岁才上大学
- 未来的职业规划
- 对互联网公司的工作强度有了解么
主管面
- 做下自我介绍
- 详细介绍一个主要参与的项目
- 对几大云平台的了解
- 未来的职业规划
- 主管介绍了下定级、绩效考评、薪资结构、薪资