今天我结合自己华为面试的经历,讲下华为面试的流程。因为是个例,不一定百分百准确,不过也结合了几位在华为参加过面试的同学同事以及现任的华为研发工程师的反馈,总结如下。
1. 性格测试。性格测试成绩和身份证号绑定,如果通过的话,有效期一年(也可能是一年以上,反正有效期很长);不通过的话会有第二次机会,但如果第二次也不通过就比较麻烦,除非业务很强烈要求要你,否则HR部分会把你拒绝,而且性格测试不通过也有一个有效期。
2. 机考。机考的话情况比较多变,比较正常的情况是面试官或者HR直接发测试平台的网页链接,在自己电脑上进入测试平台做编程题。另外一种情况是接受了两个不同部门的面试,在第一个部门面试的过程中做了测试平台上的编程题,换到第二个部门面试时,有的时候会要求重新做一遍。但第二个部门的编程题未必是在测试平台上做,比较宽松。另外如果是对数学有要求的岗位,会有面试官出数学公式推导题。
3. 技术面,可能会有1~2轮。技术面和一般互联网公司的技术面试没什么太大区别,华为很少让现场做编程题(个人体验)。
4. 主管面,主管面和技术面的区别是主管面侧重于问项目经历,对具体技术可能问的不多。另外主管面有的时候主管会问一些HR面的东西。
5. HR面。华为的HR面试淘汰的可能性不大,大致是询问一些家庭生活、有无本地长期工作打算之类的问题。
机考阶段有五种常出题型。一般华为的机考是考两道大题,也就是两道程序题,400分满分,120分通过。我个人理解,华为这个考试基本上是leetcode简单水平。
第一种类型:字符串处理问题,是华为开发笔试中常考类型,属于中、低难度,主要考核面试者的缜密度和细心程度,还有基本的代码能力
题目:简单错误记录
描述:
开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。
处理:
1、 记录最多8条错误记录,循环记录(或者说最后只输出最后出现的八条错误记录),对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加;
2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;
3、 输入的文件可能带路径,记录文件名称不能带路径。
输入描述:
一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。
输出描述:
将所有的记录统计并将结果输出,格式:文件名 代码行数 数目,一个空格隔开,如:
示例1
输入
E:\V1R2\product\fpgadrive.c 1325
输出
fpgadrive.c 1325 1
第二种类型:全面型考题,涉及数学运算,字符转换,进制转换,逻辑判断及相关网络知识
题目: 识别有效的IP地址和掩码并进行分类统计
描述:
请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。
所有的IP地址划分为 A,B,C,D,E五类
A类地址1.0.0.0~126.255.255.255;
B类地址128.0.0.0~191.255.255.255;
C类地址192.0.0.0~223.255.255.255;
D类地址224.0.0.0~239.255.255.255;
E类地址240.0.0.0~255.255.255.255
私网IP范围是:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
子网掩码为二进制下前面是连续的1,然后全是0。(例如:255.255.255.32就是一个非法的掩码)
注意二进制下全是1或者全是0均为非法
注意:
1. 类似于【0.*.*.*】的IP地址不属于上述输入的任意一类,也不属于不合法ip地址,计数时可以忽略
2. 私有IP地址和A,B,C,D,E类地址是不冲突的
输入描述:
多行字符串。每行一个IP地址和掩码,用~隔开。
输出描述:
统计A、B、C、D、E、错误IP地址或错误掩码、私有IP的个数,之间以空格隔开。
示例1 :
输入
10.70.44.68~255.254.255.0
1.0.0.1~255.0.0.0
192.168.0.2~255.255.255.0
19..0.~255.255.255.0
输出
1 0 1 0 0 2 1
第三种类型:涉及数据结构,链表、数组处理
题目:从单向链表中删除指定值的节点
描述:
输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
详细描述:
本题为考察链表的插入和删除知识。
链表的值不能重复
构造过程,例如
1 <- 2
3 <- 2
5 <- 1
4 <- 5
7 <- 2
最后的链表的顺序为 2 7 3 1 5 4
删除 结点 2
则结果为 7 3 1 5 4
输入描述:
1 输入链表结点个数
2 输入头结点的值
3 按照格式插入各个结点
4 输入要删除的结点的值
输出描述:
输出删除结点后的序列,每个数后都要加空格
示例1
输入
5
2
3 2
4 3
5 2
1 4
3
输出
2 5 4 1
第四类型:数独问题,涉及算法及二维数组
题目: Sudoku-Java
问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个粗线宫内的数字均含1-9,并且不重复。
输入描述:
包含已知数字的9X9盘面数组[空缺位以数字0表示]
输出描述:
完整的9X9盘面数组
示例1
输入
0 9 2 4 8 1 7 6 3
4 1 3 7 6 2 9 8 5
8 6 7 3 5 9 4 1 2
6 2 4 1 9 5 3 7 8
7 5 9 8 4 3 1 2 6
1 3 8 6 2 7 5 9 4
2 7 1 5 3 8 6 4 9
3 8 6 9 1 4 2 5 7
0 4 5 2 7 6 8 3 1
输出
5 9 2 4 8 1 7 6 3
4 1 3 7 6 2 9 8 5
8 6 7 3 5 9 4 1 2
6 2 4 1 9 5 3 7 8
7 5 9 8 4 3 1 2 6
1 3 8 6 2 7 5 9 4
2 7 1 5 3 8 6 4 9
3 8 6 9 1 4 2 5 7
9 4 5 2 7 6 8 3 1
第五种类型:典型的动态规划问题,面试华为15级以上一般会考一道动态规划题
题目: 火车进站
描述:
给定一个正整数N代表火车数量,0 输入描述: 有多组测试用例,每一组第一行输入一个正整数N(0 输出描述: 输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,具体见sample。 示例1 输入 3 1 2 3 输出 1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 以上内容希望对你有所帮助,可以先自测有一下。有关面试方面的问题可以评论区留言。
立即咨询: 13716188458 / 18588225959,助您抢占市场先机。项目经理在线