第一种类型:字符串处理问题,是华为开发笔试中常考类型,属于中、低难度,主要考核面试者的缜密度和细心程度,还有基本的代码能力
题目:简单错误记录 描述: 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 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<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。 输入描述: 有多组测试用例,每一组第一行输入一个正整数N(0<N<10),第二行包括N个正整数,范围为1到9。 输出描述: 输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,具体见sample。
示例1 输入 3 1 2 3 输出 1 2 3 1 3 2 2 1 3 2 3 1 3 2 1 |