华为机试练习题
每一年秋季新学期的开始,新一轮招聘高峰即将来到。这不禁让人想起找工作的情形,人山人海.......尽可能的搜集各算法,为各个学子进入理想的IT公司做一些铺垫。
@SmartSi
Stay Hungry, Stay Foolish
展开
-
[华为机试练习题]3.分解字符串
题目按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”代码/*-------------------------------------* 日期:2015-06-18* 作者:SJF0115* 来源:华为原创 2015-06-18 20:21:08 · 4418 阅读 · 0 评论 -
[华为机试练习题]1.周期串问题
题目一如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3)。字符串的长度小于等于100,由调用者保证。接口说明原型: int GetMinPeriod(char *inputstring); 输入参数: char * inputstring:字符串原创 2015-06-28 23:30:59 · 5222 阅读 · 0 评论 -
[华为机试练习题]2.大数求和
题目二[大数求和]描述: 给定两个非常大的正整数A和B,位数在50至100之间。求C=A+B;题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 因为A和B很大,从高位到低位,以字符串的形式输入两行数字A和B。A和B的位数在50至100之间。输出: 以字符串形式,输出一行,表示A和B的和。样例输入原创 2015-06-28 23:32:33 · 4265 阅读 · 0 评论 -
[华为机试练习题]4.简单密码破解
题目描述: 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道原创 2015-06-28 23:58:35 · 5016 阅读 · 0 评论 -
[华为机试练习题]5.IP地址判断有效性
题目判断输入的字符串是不是一个有效的IP地址详细描述:请实现如下接口 boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效的IP地址,false,无效的IP地址约束输入IP为XXX.XXX.XXX.XXX格式 字符串两端含有空格认为是合法IP 字符串中间含有空格认为是不合法IP 类似于 01.1.1.原创 2015-06-29 08:30:44 · 4252 阅读 · 0 评论 -
[华为机试练习题]6.整数排序
题目描述: 实现输入一组大于等于0的整数,根据从小到大的顺序排序后输出,排序后有连续数时,只输出连续数中最小和最大的两个数。题目类别: 排序 难度: 高级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 一组大于等于0的整数,不考虑非法输入,各个整数之间以逗号(“,”)分隔, 输入字符串的总长度小于等于100个字节。输出: 排原创 2015-06-29 08:34:25 · 4258 阅读 · 1 评论 -
[华为上机练习题]7.删除字符串中出现次数最少的字符
题目描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。输出: 删除字符串中出现原创 2015-06-29 08:51:49 · 3659 阅读 · 3 评论 -
[华为机试练习题]8.汽水瓶
题目描述: 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?题目类别原创 2015-06-29 09:12:45 · 3347 阅读 · 3 评论 -
[华为机试练习题]9.坐标移动
题目开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1原创 2015-06-29 10:57:17 · 2670 阅读 · 0 评论 -
[华为机试练习题]10.二叉树遍历
题目描述: 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。题目类别: 树 难度原创 2015-06-29 11:33:55 · 4514 阅读 · 0 评论 -
[华为机试练习题]11.最大递减数
题目给出一个非负整数,找到这个非负整数中包含的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为953。如果输入的数字为负数,返回-1。原创 2015-06-29 13:53:20 · 2589 阅读 · 0 评论 -
[华为机试练习题]12.整型字符串排序
题目给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数 排序要求:按照每个正整数的后三位数字组成的整数进行从小到大排序 1)如果不足三位,则按照实际位数组成的整数进行比较 2)如果相等,则按照输入字符串中的原始顺序排序 说明(以下内容考生无须检查,调用者保证): 1) 字符串以’\0’结尾,仅包含数字、空格 2) 字符串内正整数之间以单个空格分隔,字符串首尾没原创 2015-06-29 16:31:04 · 5131 阅读 · 2 评论 -
[华为机试练习题]13.火车进站
题目描述: 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。题目类别: 栈 难度: 高级 运行时间限制: 10Sec内存限制: 128MByte阶段: 入职前练习 输入: 有多组测试用例,每一组第一行输入一个正整数N(0<N<10),第二行包括N个正整数,范围为1原创 2015-06-30 09:10:39 · 6038 阅读 · 4 评论 -
[华为机试练习题]14.整数分隔
题目描述: 一个整数总可以拆分为2的幂的和,例如:7=1+2+47=1+2+2+27=1+1+1+47=1+1+1+2+27=1+1+1+1+1+27=1+1+1+1+1+1+1总共有六种不同的拆分方式。再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。用f(n)表示n的不同拆分的种数,例如f(7)=6.要求编写程序,原创 2015-06-30 10:06:34 · 2378 阅读 · 0 评论 -
[华为机试练习题]15.删除重复字符/删除重复字符串
题目题目标题:删除重复字符给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序,并且区分大小写。详细描述:接口说明原型:int GetResult(const char *input, char *output)输入参数: input 输入的字符串输出参数(需考虑指针指向的内存区域是否有效): ou原创 2015-06-30 10:40:06 · 3700 阅读 · 2 评论 -
[华为机试练习题]16.数字统计
题目题目标题:对输入的整型数组,输出数组元素中的最大值、最大值的个数、最小值和最小值的个数详细描述:接口说明原型:voidOutputMaxAndMin(int * pInputInteger,intInputNum,int * pMaxValue,int * pMaxNum,int * pMinValue,int * pMinNum);输入参数: Int * pInputInteg原创 2015-06-30 11:00:56 · 3590 阅读 · 3 评论 -
[华为机试练习题]17.可怕的阶乘
题目题目标题:计算阶乘n!是一件可怕的事情,因为当n并不是很大时,n!将是一个很大的值。例如13! = 6227020800,已经超过了我们常用的unsigned int类型的取值范围。请设计一个程序,使其可以计算100以内的数的阶乘,结果用字符串的形式输出详细描述:接口说明原型:void CalcNN(int n, char *pOut)输入参数:int n 需要计算的阶乘数输出参数:原创 2015-06-30 11:50:56 · 3784 阅读 · 0 评论 -
[华为机试练习题]18.矩阵相乘
题目描述: 题目描述: 矩阵相乘 输入:两个N*N阶矩阵相乘 输出:结果矩阵 样例输入: {1, 2, 3}, {4, 5, 6}, {7, 8, 9} {1, 2, 3}, {4, 5, 6}, {7, 8, 9} 样例输出: {30, 36, 42}, {66, 81, 96}, {102, 126, 150}接口说明:原型: int matrix(int **MatrixA原创 2015-06-30 12:34:40 · 2641 阅读 · 0 评论 -
[华为机试练习题]19.字符串最后一个单词的长度
题目代码/*---------------------------------------* 日期:2015-06-30* 作者:SJF0115* 题目:字符串最后一个单词的长度* 来源:华为上机-----------------------------------------*/#include <iostream>#include <string>#include原创 2015-06-30 15:11:43 · 2123 阅读 · 0 评论 -
[华为机试练习题]20.Home+Work
题目描述: 题目描述临近开学了,小C才想起来数学老师布置了暑假作业。暑假作业是很多张试卷,每张试卷所需的时间和获取的价值已知,请你帮他安排一下,用他仅剩的一点时间来做最有价值的作业。接口说明原型:int GetMaxValue(int nPapers, int nRemain, int paper[][2], double* pMaxValue) 输入参数:int nPaper原创 2015-06-30 16:40:46 · 2843 阅读 · 0 评论 -
[华为机试练习题]21.二维数组的列排序
题目描述: 给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列。如果第i列到最后一列都相同,则按原序排列。 实现以下接口:输入一个m*n 的整数数组,实现按规则排列,返回排列后的数组。调用者会保证:比如输入数组为: 1,2,32,3,42,3,11,原创 2015-06-30 17:25:24 · 3267 阅读 · 1 评论 -
[华为机试练习题]22.N皇后
题目皇后是国际象棋中威力最大的棋子。在下面所示的棋盘上,皇后可以攻击位于箭头所覆盖位置的所有棋子。我们能不能把N个皇后放在棋盘(N×N)上,它们中的任何一个都无法攻击其余的皇后?请编写程序找出一共有几种方法。详细描述:接口说明原型:intPlaceQueenMethodNum(int n);输入参数: int n: 皇后的个数返回值: int: 放置n皇后方案的个数原创 2015-06-30 18:27:23 · 2159 阅读 · 0 评论 -
[华为机试练习题]23.修改字符串
题目描述: 将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母(z变为a),大写字母和其他字符不处理,仍然保留。要求最终输出的字符串中不再存在任何连续出现3次的小写字母。例如字符串”ATRcccert893#45ae”经过处理后应该为”ATRdert893#45ae”详细描述:接口说明原型:int ChangeString(char *pInStr,char原创 2015-06-30 21:38:35 · 2091 阅读 · 0 评论 -
[华为机试练习题]24.删除链表中的重复节点、剩余节点逆序输出
题目描述: 题目描述:输入一个不带头节点的单向链表(链表的节点数小于100),删除链表中内容重复的节点(重复的节点全部删除),剩余的节点逆序倒排。要求实现函数: void vChanProcess(strNode * pstrIn,strNode * pstrOut);【输入】 pstrIn:输入一个不带头节点的单向链表【输出】 pstrOut:删除内容重复的节点(重复的节点全部原创 2015-07-01 08:48:44 · 2313 阅读 · 0 评论 -
[华为机试练习题]25.圆桌游戏
题目描述: 详细描述:N个人围坐在一个圆桌上,顺时针报数,报数的初始值为第一个人设置。当有成员报出的数字为7的倍数或数字中包含7,则该人退出圆桌,而后由下一个人开始重新继续该游戏。实现以下接口: 1、设定输入原始的圆桌游戏的人数。以最先开始报数的人编号为1,顺时针排序。 2、设定第一个人的初始值,获取按照规则退出圆桌的人的编号。 3、结束游戏。样例:比如初始化为4人的游戏:第1轮初始值为原创 2015-07-01 10:12:18 · 3262 阅读 · 0 评论 -
[华为机试练习题]26.铁路栈问题
题目描述: 题目标题:铁路栈问题 铁路的调度站如下:火车编号为:1~9,且不重复。如:编号分别为“1”、“2”、“3”、“4”、“5”的5个火车顺序进站,那么进站序列为“12345”,全部进站后再顺序出站,则出站序列为“54321”,如果先进1,2,然后2出站,然后1出站,然后再3进站、出站,4进站、出站,5进站、出站,那么出站序列就为21345.详细描述: int JudgeTrainSeq原创 2015-07-01 10:58:36 · 3549 阅读 · 0 评论 -
[华为机试练习题]27.渊子赛马
题目描述: 题目描述赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。 赛马是当时最受齐国贵族欢迎的娱乐项目。上至国王,下到大臣,常常以赛马取乐,并以重金赌输赢。田忌多次与国王及其他大臣赌输赢,屡赌屡输。一天他赛马又输了,回家后闷闷不乐。孙膑安慰他说:“下次有机会带我到马场看看,也许我能原创 2015-07-01 11:24:19 · 2666 阅读 · 0 评论 -
[华为机试练习题]28.报数
题目描述: 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出,问最后留下的那位是原来第几号。题目类别: 数组,指针 难度: 初级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 使用标准输入stdio.多行,每行一组数据。输出: 多行,每行对应求和结果。样例输入: 3样例输出: 2代码/*--原创 2015-07-01 11:45:38 · 2558 阅读 · 0 评论 -
[华为机试练习题]29.Arrange an Array to Form a Smallest Digit
题目描述: Question: Input an array of positive integers, arrange the integers to form new digits, and output the smallest digit among all the new ones. Input Example 1: {2, 1}Output Example 1:12Input Exam原创 2015-07-01 15:28:34 · 1845 阅读 · 1 评论 -
[华为机试练习题]30.计算整数的位数
题目描述: 输入一个五位以内(包括5位)的正整数,(1)判断它是一个几位数;(2)逆序输出其各位数字。题目类别: 位运算 难度: 初级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 多组数据,每组一行输出: 对应一行输出样例输入: 56439 样例输出: 5 93465代码/*----原创 2015-07-01 15:58:50 · 2845 阅读 · 2 评论 -
[华为机试练习题]31.密码验证合格程序
题目描述: 密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度超2的子串重复说明:长度超过2的子串题目类别: 字符串,数组 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 一组或多组长度超过2的子符串。每组占一行输出: 如果符合要求输出:OK,否则输出NG每行输出对应一组输入的原创 2015-07-01 16:36:21 · 2278 阅读 · 0 评论 -
[华为机试练习题]32.数字基root
题目描述: 求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复;题目类别: 数组 难度: 初级 运行时间限制: 10Sec内存限制: 128MByte阶段: 入职前练习 输入: 输入任意一个或多个整数输出: 输出各位数字之和,直到和为个位数为止(输入异常,则返回-1)多行,每行对应一个输入数据的结果。样例输入: 25865样例输原创 2015-07-01 21:09:24 · 2087 阅读 · 0 评论 -
[华为机试练习题]33.二叉搜索树
题目描述: 判断两序列是否为同一二叉搜索树序列题目类别: 树 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行原创 2015-07-01 22:10:22 · 2227 阅读 · 0 评论 -
[华为机试练习题]34.识别有效的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.原创 2015-07-02 09:49:30 · 5677 阅读 · 5 评论 -
[华为机试练习题]35.找零钱
题目描述: 我们知道人民币有1、2、5、10、20、50、100这几种面值。现在给你n(1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过100张,共有几种。比如4元,能用4张1元、2张1元和1张2元、2张2元,三种表示方法。题目类别: 循环 难度: 初级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 输入有多组,每组一原创 2015-07-02 10:57:08 · 3188 阅读 · 0 评论 -
[华为机试练习题]36.简单错误记录
题目描述: 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理: 1、 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加;2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;3、 输入的文件可能带路径,记录文件名称不能带路径。题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限原创 2015-07-02 15:10:43 · 5683 阅读 · 4 评论 -
[华为机试练习题]37.合唱队
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足存在i(1<=i<=K)使得T1 < T2 <...... < Ti-1 < Ti >Ti+1 >......>TK。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列原创 2015-07-02 15:57:39 · 3650 阅读 · 0 评论 -
[华为机试练习题]38.名字的漂亮度
题目描述: 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。给出多个名字,计算每个名字最大可能的“漂亮度”。题目类别: 字符串 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 整数N原创 2015-07-02 16:29:39 · 2866 阅读 · 0 评论 -
[华为机试练习题]39.尼科彻斯定理
题目描述: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。例如:1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 题目类别: 循环 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 整数m(取值范围:1~100)输出: 尼科彻斯定理成立,输出m个连续奇数(格式:“7+9+11”原创 2015-07-02 21:15:55 · 2083 阅读 · 0 评论 -
[华为机试练习题]40.求车速
题目描述: 一辆以固定速度行驶的汽车,司机在上午10点看到里程表(里程表有6位)上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的,例如95859公里)。两小时后里程表上出现了一个新的对称数。问该车的速度(公里/小时)是多少?接口说明原型:int CalcSpeedOfCar(int iCurrentMileage, int * piCarSpeed);输入参数:int pcCu原创 2015-07-02 21:56:48 · 3462 阅读 · 0 评论