华为od面经
先说一下本人情况,211本科,21年毕业,自动化专业,没有工作经历,目前是到了最后一个主管面试阶段,希望一切顺利。
- 首先是机考,2022/09/16号考的,我是学的Python,机考题可能运气好,感觉不难,是满分过了。具体题目和题解在我前面的文章里1、2、3那三道题就是。
- 然后09/20号心理测试,这部分有112道题,每页有两道题,每道题选一个最符合和最不符合,选完到下一页就不能返回和修改了,注意后面选的不要和前面矛盾太多就好了,具体选什么可以看看别人总结的攻略,HR应该也会告诉你遵循以下宗旨:抗压强,积极乐观,团队协作强等等。
- 接着到了09/21号技术一面,具体好像没问啥,我给忘了,最后环节就是手撕代码,会要求共享屏幕做。写完还让我讲了下思路,二面的技术官倒是没要求我讲。
题目是给一个只包含英文字母的字符串,判断字符串的英文是否使用正确,正确返回True,错误返回False。正确情况有以下三种:
(1)全部为大写
(2)全部为小写
(3)首字母大写其余为小写
def is_correct(string): # 先排除空字符串的情况 if not string: return False # 全为大写字母的情况(包括长度为1的情况) if string.upper() == string: return True # 全为小写字母的情况(包括长度为1的情况) elif string.lower() == string: return True else: # 首字母为小写则说明不符合条件了,直接返回False if string[0].islower(): return False # 首字母为大写则判断后续字母有没有大写,有就直接返回False,遍历结束没发现大写字母则说明全小写,返回True else: for i in range(1, len(string)): if string[i].isupper(): return False return True # 测试用例 print(is_correct("USA")) print(is_correct("FlaG")) print(is_correct("Flag")) print(is_correct("avdd"))
- 技术二面:这部分问的有点多,不过大体都是我引导的去问的,我自我介绍时说了自己学了Linux、数据库、还有UI自动化的代码、接口方面的代码。
面试官也没问多深,主要就是考察你了不了解。有些东西我都有点忘了,就说出了个大概,他说没事,知道有这么个东西就好。
Linux问了一些常用命令,
数据库就问了一个还是最基础的,怎么查表中特定一行的数据,用where筛选就行了。
自动化方面就是给你个页面,你怎么设计代码实现自动化的,我就说了下流程和一些selenium的定位元素,元素操作的方法。还有就是pytest方面管理用例,数据驱动啥的,
接口方面说了下使用了request库调用get、post等方法访问接口的就过了。
然后也问了一些Python很基础的东西,什么列表元组有啥区别的,好多面试官喜欢问这个,集合和列表的区别等。。
最后又来到了手撕代码环节,他是给了我三道题任选一个,第一道题我记得是求共同前缀吧,第二道题是**第3题,求最长不重复子串的长度,我选的这个,第三题没看完, 是杨辉三角的题。
def max_len(string): res, length = [], 0 for i in string: while i in res: res.pop(0) res.append(i) if len(res) > length: length = len(res) return length print(max_len("avcdadie")) print(max_len("bbb")) print(max_len(""))
- 资格审查面,这个是部门领导电话沟通的,没说啥,可能机考分不错,整个过程沟通很愉快.....
- 主管面,坐等ing.........