![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
华为OJ
文章平均质量分 65
haoxiaodao
编程是在计算机中反映世界
展开
-
【华为机试】北京题2015.10.14
第一题:交叉排序,本来以为很简单,结果没注意到题目的运行时间限制,哎,一直超时,不晓得原因,分别采用了冒泡、直接选择、快排,全部超时冒泡:#include using namespace std;#define maxsize 1000int main(){ int n=0,a[maxsize]; int b[maxsize],c[maxsize]; int k1=0,原创 2015-10-14 17:30:27 · 1208 阅读 · 0 评论 -
【华为oj】字符串最后一个字符的长度
华为新版oj的第一题,新版好多bug!还是喜欢老版本的界面,新版本这么小清新的界面不适合我。代码:#include#includeusing namespace std;int main(){string str;getline(cin,str);int pos = 0,npos = -1;pos = str.find_last_of(' ');if(pos == n原创 2015-07-30 13:23:06 · 859 阅读 · 1 评论 -
【华为oj】计票统计
问题描述:请实现接口:unsigned int AddCandidate (char* pCandidateName);功能:设置候选人姓名输入: char* pCandidateName 候选人姓名输出:无返回:输入值非法返回0,已经添加过返回0 ,添加成功返回1Void Vote(char* pCandidateName);功能:投票输入: char*原创 2015-07-09 20:10:30 · 1296 阅读 · 1 评论 -
【华为oj】密码验证合格程序
问题描述:密码是否合格的要求1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度超2的子串重复说明:长度超过2的子串知识点: 字符串,数组 题目来源: 内部整理 练习阶段: 中级 运行时间限制: 无限制 内存限制: 无限制 输入: 一组或多组长度超过2的子符串。每组占一行输出:原创 2015-07-09 20:53:20 · 1020 阅读 · 3 评论 -
【华为oj】密码强度等级
问题描述:密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混原创 2015-06-30 20:38:32 · 1836 阅读 · 2 评论 -
【华为oj】放苹果
题目描述:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入每个用例包含二个整数M和N。0样例输入7 3样例输出8/** * 计算放苹果方法数目 * 输入值非法时返回-1 * 1 * @param m 苹果数目 * @p原创 2015-06-30 19:55:15 · 1233 阅读 · 1 评论 -
【华为OJ】取近似值
问题描述:如果小数点后面的第一个小数位大于或者等于5则向上取整,否则向下取整。问题分析:整数好理解,就是我们常用的四舍五入,用输入的数+0.5然后取整输出就好。关键是负数,这个问题描述的很不清楚,按理来说-5.5向上取整得到的应该是-5,可是,华为oj平台得到的结果是-6才是争取的,所以,如果是复数我们只能这么判断,先将这个数取反(得到正数),然后+0.5,然后用int来截断取整,最后输出原创 2015-06-09 20:19:21 · 1006 阅读 · 0 评论 -
【华为OJ】输入n个整数,输出其中最小的k个
输入n个整数,输出其中最小的k个。 详细描述:接口说明原型:bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint uiK, int * pOutputArray);输入参数:unsignedint uiInputNum //输入整数个数int * pInputArray //输入整数数组原创 2015-06-09 18:12:27 · 1891 阅读 · 0 评论 -
【华为oj】明明的随机数
问题描述:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随原创 2015-06-28 17:50:41 · 120 阅读 · 1 评论 -
【华为OJ】求最小公倍数
正整数A和正整数B 的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。知识点: 循环,位运算 题目来源: 内部整理 练习阶段: 初级 运行时间限制: 10Sec 内存限制: 128MByte 输入: 输入两个正整数A和B。输出: 输出A和B的最小公倍数。样例输入: 5 7样例输出: 35分数:原创 2015-06-06 20:40:08 · 2022 阅读 · 2 评论 -
【华为oj】学英语o(>﹏<)o
问题描述:代码:#include #include using namespace std;string NUmberToEnglishString(long int number){ string s; if(number<0) { s="error"; return s; } if(number<20) { switch (number) {原创 2015-06-27 17:08:55 · 1343 阅读 · 0 评论 -
【华为oj】矩阵乘法
问题描述:如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。原型:voidmatrix_multiply(int *m1,int *m2,int *r, int x, int y, int z);输入参数: in原创 2015-06-27 16:47:54 · 1622 阅读 · 1 评论 -
【华为oj】查找组成一个偶数最接近的两个素数
问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 请实现如下接口 public static class PrimePair { public int primeMin; public int primeMax; } public sta原创 2015-06-27 17:24:12 · 778 阅读 · 3 评论 -
【华为OJ】字符串排序
编写一个程序,将输入字符串中的字符按如下规则排序。规则1:英文字母从A到Z排列,不区分大小写。如,输入:Type 输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入:BabA 输出:aABb规则3:非英文字母的其它字符保持原来的位置。如,输入:By?e 输出:Be?y样例: 输入: AFamous Saying: Much Ad原创 2015-06-04 21:37:46 · 644 阅读 · 2 评论 -
【华为oj】成绩排序
问题描述: 查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack原创 2015-06-19 15:39:39 · 1870 阅读 · 0 评论 -
【华为oj】句子逆序
问题描述:将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/** * 反转句子 * *@param sentence 原句子 *@return 反转后的句子 */public String reverse(String sentenc原创 2015-06-19 14:17:28 · 2212 阅读 · 0 评论 -
最佳路径
分析问题:创造结构体,包含三个量,存储源ID,目标ID,从源到目标的距离。根据输入建立邻接矩阵表,最后通过三重循环,找到最短距离矩阵表,最后按照给定的源和目的ID输出最短距离。代码:#include #include using namespace std;#define MAX 10000#define maxsize 100struct node{ int s;//源原创 2015-09-01 19:16:12 · 1207 阅读 · 1 评论 -
【华为oj】合法ip
问题描述 现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。现在需要你用程序来判断IP是否合法。知识点 字符串,循环,链表,队列,栈,查找,搜索,排序,原创 2015-08-09 21:12:11 · 916 阅读 · 0 评论 -
【放苹果】m个苹果放到n个盘子中
m个相同的苹果,放在n个相同的盘子中,由于相同,使用排列组合的方法不好处理。这里选用递归调用的方式解决问题:(8个苹果,放在3个盘子里)=(8个苹果,放在2个盘子)+(5个苹果,放在2个盘子【每盘已经放入1个苹果】)+(2个苹果,放在2个盘子里【每盘已经放入一个苹果】)=(8个苹果,放在1个盘子里)+(6个苹果,放在1个盘子里【每盘已经放入1个苹果】)+(4个苹果,放在1个盘子原创 2015-08-29 10:03:57 · 5645 阅读 · 0 评论 -
火星计算器
大体来看,程序主要流程为这么几步 1. 将得到的字符串进行去空格处理。 2. 将第1步得到的字符串(此为中缀形式)转换为逆波兰式(后缀式) 3. 将第2步得到的逆波兰式(RPN)进行计算,求出结果并输出。代码:#include #include #include #include #include using namespace std;#define MAX原创 2015-09-01 15:19:58 · 705 阅读 · 0 评论 -
简易火车票售票系统
#include #include using namespace std;#define maxsize 100int n;//全局站点总数int max=0,min=0;int ship[maxsize][maxsize]={0};//全局票数矩阵int maxnum(int a[]){ int i=0; int max=0; for(i=0;i<n;i++) {原创 2015-09-01 20:29:25 · 2049 阅读 · 0 评论 -
【链表】逆序输出
#include #include using namespace std;#define maxsize 100#define null 0typedef struct node{ int data; struct node * next;}node, *linklist;int strtonum(string s){ int i=0,len=s.length(); i原创 2015-08-29 17:05:17 · 982 阅读 · 0 评论 -
【循环列表】之约瑟夫问题
约瑟夫问题:n个人围成一圈,从第一个开始报数1,报数到第m个的人将被杀掉,然后继续下一个人报数1,再次报数到m的人被杀掉,这样循环报数,最后剩下一个,其余人都将被杀掉。由n个人围城一圈,我们想到用循环列表解决问题历史来历:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也原创 2015-09-01 09:52:41 · 688 阅读 · 0 评论 -
逆波兰表达式
逆波兰表达式又叫做后缀表达式。它的语法规定,表达式必须以逆波兰表达式的方式给出。正常的表达式 逆波兰表达式a+b ---> a,b,+a+(b-c) ---> a,b,c,-,+a+(b-c)*d ---> a,b,c,-,d,*,+a+d*(b-c)--->a,d,b,c,-,*,+a=1+3 ---> a=1,3 +(1-2)*(3+6)---> 1,2,-,3原创 2015-09-01 16:46:39 · 860 阅读 · 0 评论 -
【华为oj】计算每个名字最大可能的“漂亮度”
问题描述:给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。给出多个名字,计算每个名字最大可能的“漂亮度”。知识点: 字符串 题目来源: 内部整理 练习阶段: 初级 运行时间限制: 无限制 内存限制: 无限制原创 2015-06-18 20:08:17 · 1184 阅读 · 1 评论 -
【线性表】之链式存储结构
线性表有两种普遍的存储方式:顺序存储和链式存储。顺序存储的最大特点是简单,简单的读取操作方便,而其致命的缺点是当进行插入或删除操作时,需要移动大量的元素,耗费时间,而此缺点链式存储恰可以完美的解决。下面是链表一系列操作的代码,用户自定义函数主要包括:/*//创建一个链表_头插法√//创建一个链表_尾插法√//置空表√//求列表长度√//取得节点i位置的数值√原创 2015-09-01 09:28:51 · 502 阅读 · 0 评论 -
胜负猜想
分析问题:这一题其实本质上是求最大递增子序列长度的问题,比如213的最大递增子序列长度为2,则甲胜出(因为len-2=1,len是长度)2222的最大递增子序列长度为1,则假胜出(因为len-1=3,len是长度)而222则是乙胜出。代码:#include #include using namespace std;#define maxsize 100bool isdig(st原创 2015-09-01 17:14:01 · 426 阅读 · 0 评论 -
【oj平台】合唱队&动态规划
问题分析:选择一个位置作为顶点位置,这个位置左边是升序,右边是降序,参考开口向下的抛物线。输入序列后,可以循环选择任意一个位置为顶点位置,而后分别求出此种设定下,左侧的最大升序长度和右侧的最大降序长度。循环比较选择出最佳顶点的位置。这里的难题是如何求出一个序列的最大升(降)序列长度。【动态规划是一种最常见的方法】:举例子说明:有一组序列为1 4 6 3 5 8原创 2015-08-30 12:13:57 · 1103 阅读 · 0 评论 -
【循环列表】之魔术师的扑克牌问题
问题描述:在一次晚会上,一位魔术师掏出一叠扑克牌,取出其中13张黑桃,预先洗好后,把牌面朝下,对观众说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念一,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌,第二次数1,2,将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面二张牌放到这叠牌的下面,取出第三张牌,正好是黑原创 2015-09-01 10:48:29 · 1902 阅读 · 1 评论 -
【华为oj】蛇形矩阵
问题描述 题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211接口说明原型void GetResult(int Num, char * pResult);输入参数: int Num:输入的正整数N输出参数:原创 2015-08-09 21:36:05 · 2046 阅读 · 0 评论 -
【华为OJ】小球落地5次
假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高? /** * 统计出第5次落地时,共经过多少米? * * @param high 球的起始高度 * @return 英文字母的个数 */ public static double getJourney(in原创 2015-06-03 20:59:48 · 833 阅读 · 1 评论 -
【华为OJ】表示数字
描述:将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变。知识点:字符串题目来源:内部整理练习阶段:初级输入:输出一个字符串输出:字符中所有出现的数字前后加上符号”*“,其他字符保持不变。样例输入:abc123bf45vgd7样例输出:abc*123*bf*45*vgd*7*个人认为难度系数还是很大的,关键是要想到利用循环的思想,和库函数isdi原创 2015-06-03 20:20:43 · 920 阅读 · 1 评论 -
【华为oj】简单密码破解
问题描述:密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是原创 2015-06-18 20:47:16 · 1735 阅读 · 1 评论 -
【华为OJ】求int型数据在内存中存储时1的个数
问题描述: 输入一个int型数据,计算出该int型数据在内存中存储时1的个数。知识点:字符串,查找输入:输入一个整数(int型)输出:这个数转换成2进制后,输出1的个数。样例输入:5样例输出:2问题分析:数据以其补码形式存储,整数的补码就是本身,复数的补码是其反码+1;( -10 原码是 10001010 取反得 11110101 加一得 11110110)所以,问原创 2015-06-16 20:22:10 · 1564 阅读 · 0 评论 -
【华为】百钱买鸡
问题分析:买鸡的几种方式,要求,用100块,买x只公鸡,y只母鸡,和z只小鸡,其中所有鸡的个数总和是100.所有鸡的花销是100.小鸡z的只数必须是3的倍数。注意1:要求有输入,其实这题完全没有必须需要输入,直接打印输出就可以了。注意2:输出的格式一定要和样例输出一样,每行的三个数,中,有两个空格。#include using namespace std;int main(){原创 2015-06-16 21:02:45 · 948 阅读 · 1 评论 -
【华为oj】挑7
问题分析:把7 的倍数,个位或者十位,百位,千位。。。上含有7的个数统计出来。#include using namespace std;int main(){ int num=0,i=0; long date=0; cin>>date; for(i=1;i<=date;i++) { if((i%7==0)||(i%10==7)||((i/10)%10==7)||((i/10原创 2015-06-16 21:00:46 · 1223 阅读 · 0 评论 -
【华为OJ】找出字符串中第一个只出现一次的字符
找出字符串中第一个只出现一次的字符详细描述:接口说明原型:bool FindChar(char* pInputString, char* pChar);输入参数:char* pInputString:字符串输出参数(指针指向的内存区域保证有效):char* pChar:第一个只出现一次的字符如果无此字符 请输出'.'第一次提交代码是,忘记看红字部分的描述了,原创 2015-04-20 20:22:28 · 982 阅读 · 1 评论 -
【华为OJ】字符串反转
题目: 代码实现【这个代码在vc上运行正常,但在oj平台上总提示格式错误,郁闷!!!!】: #include #include #include using namespace std;int main(){ int Reserve(char *str); char str1[100]; cin>>str1; Reserve(str1); cout<原创 2015-04-15 16:01:22 · 1123 阅读 · 3 评论 -
【华为OJ】DNA序列
题目:描述: 一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。知识点:原创 2015-04-15 17:02:20 · 1526 阅读 · 1 评论 -
【华为OJ】颠倒数字
描述: 描述:输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001知识点: 字符串 题目来源: 内部整理 练习阶段: 初级 运行时间限制: 10Sec 内存限制: 128MByte输入: 输入一个int整数输出: 将这个整数以字符串的形式逆序输出样例输入原创 2015-03-06 21:30:23 · 6760 阅读 · 2 评论