华为笔试题:手机号码合法性判断与元音字母筛选排序

需积分: 0 5 下载量 33 浏览量 更新于2024-09-10 收藏 21KB DOCX 举报
"华为机试题包括手机号码合法性判断和字符串元音字母处理两部分,主要考察编程基础和字符串处理能力。" 在华为的机试题中,我们首先关注的是手机号码合法性判断的问题。这个问题旨在测试考生对字符串处理和条件判断的能力。题目要求编写一个名为`verifyMsisdn`的函数,该函数接收一个表示手机号码的字符串`inMsisdn`,并根据特定的规则检查其合法性。这些规则包括: 1. 手机号码必须是13位。 2. 必须以国家码86开头。 3. 每一位都应该是数字。 函数应该根据这些条件返回不同的整数值,表示不同的错误情况: - 如果合法,返回0。 - 长度不合法,返回1。 - 包含非数字字符,返回2。 - 不是以86开头,返回3。 示例代码中,函数首先检查前两位是否为'86',然后遍历其余11位,确保它们都是数字。如果在遍历过程中发现非数字字符,根据情况返回1或2。最后,如果遍历结束后还有字符,说明长度过长,返回1。否则,返回0表示合法。 第二个问题是将一个字符串中的元音字母复制到另一个字符串并进行排序。这需要考生掌握字符分类、字符串操作和排序算法。考生需要编写一个函数,从原始字符串中提取所有的元音字母(包括大小写),并将这些元音字母按特定顺序排列到新的字符串中。元音字母包括'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'。这个任务不仅要求考生识别元音,还需要他们理解字符串的复制、排序和大小写处理等概念。 这两个问题反映了华为在招聘中对候选人的基本编程技能和逻辑思维的重视。解决问题需要对C++语言的指针、字符串操作、循环和条件判断有深入的理解,同时也需要对字符串排序算法有所了解。通过解决这些问题,候选人可以展示他们的编程能力和解决问题的能力,这也是华为在招聘过程中所看重的。