![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
华为OJ系列
大多山
皮皮虾,我们走。
展开
-
华为OJ——扑克牌大小
题目描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用”-“连接,每手牌的每张牌以空格分隔,”-“两边没有空格,如:4 4 4 4-joker J原创 2017-08-05 13:27:51 · 436 阅读 · 0 评论 -
华为OJ——矩阵乘法
题目描述 如果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); 输入参数: int *m1:x行y列的矩阵(array1[x][y]) int *m2:y行z列的矩阵(a原创 2017-08-02 21:11:43 · 554 阅读 · 0 评论 -
华为OJ——统计每个月兔子的总数
题目描述 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?/** * 统计出兔子总数。 * * @param monthCount 第几个月 * @return 兔子总数 */public static int getTotalCount(int monthCount){ ret原创 2017-07-07 11:10:17 · 372 阅读 · 0 评论 -
华为OJ——求小球落地5次后所经历的路程和第5次反弹的高度
题目描述 假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高? /** * 统计出第5次落地时,共经过多少米? * * @param high 球的起始高度 * @return 英文字母的个数 */public static double getJourney(int high){ retur原创 2017-07-07 11:26:03 · 359 阅读 · 0 评论 -
华为OJ——判断两个IP是否属于同一子网
题目描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否中同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。示例:I P 地址 192.168.0.1 子网掩码 255.255.255原创 2017-07-07 15:16:19 · 338 阅读 · 0 评论 -
华为OJ——输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
题目描述 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。/** * 统计出英文字母字符的个数。 * * @param str 需要输入的字符串 * @return 英文字母的个数 */public static int getEnglishCharCount(String str){ return 0;}/** * 统计出空格字符的个数。 *原创 2017-07-07 19:16:13 · 725 阅读 · 0 评论 -
华为OJ——字符串加密
题目描述 有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,其余几个丢弃。现在,修改过的那个单词属于字母表的下面,如下所示: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z原创 2017-07-06 20:02:29 · 494 阅读 · 0 评论 -
华为OJ——蛇形矩阵
题目描述题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。样例输入 5样例输出1 3 6 10 15 2 5 9 14 4 8 13 7 12 11输入描述:输入正整数N(N不大于100)输出描述:输出一个N行的蛇形矩阵。示例1输入 4 输出1 3 6 10 2 5 9 4 8 7 代码实现:方法一 思路:充分利用行和列的控制,没有特意根据函数表达式得原创 2017-07-06 14:32:29 · 804 阅读 · 0 评论 -
华为OJ——图片整理(字符排序)
题目描述 Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。输入描述: Lily使用的图片包括”A”到”Z”、”a”到”z”、”0”到”9”。输入字母或数字个数不超过1024。输出描述: Lily的所有图片按照从小到大的顺序输出示例1原创 2017-07-06 13:07:34 · 363 阅读 · 0 评论 -
华为OJ——整数与IP地址间的转换
题目描述原理: ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。举例: 一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 00001010 0 00000000 3 00000011 193 11000001 组合起来即为:000原创 2017-07-06 09:50:34 · 227 阅读 · 0 评论 -
华为OJ——字符串运用-密码截取
题目描述 Catcher 是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加原创 2017-07-05 19:35:09 · 630 阅读 · 0 评论 -
华为OJ——单词倒排
题目描述对字符串中的所有单词进行倒排。说明: 1、每个单词是以26个大写或小写英文字母构成; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符; 4、每个单词最长20个字母;输入描述:输入一行以空格来分隔的句子输出描述:输出句子的逆序示例1输入 I am a studen原创 2017-07-04 19:58:49 · 416 阅读 · 0 评论 -
华为OJ——字符串合并处理
题目描述按照指定规则对输入的字符串进行处理。详细描述:将输入的两个字符串合并。 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。 对排序后的字符串进行操作,如果字符为‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,则对他们所代表的16进制的数进行BIT倒序的操作,并转换为相应的大写字符。如字符为‘4’,为0原创 2017-07-04 15:37:21 · 391 阅读 · 0 评论 -
华为OJ——查找兄弟单词
输入描述:先输入字典中单词的个数n,再输入n个单词作为字典单词。 再输入一个单词,查找其在字典中兄弟单词的个数m 再输入数字k 输出描述:根据输入,输出查找到的兄弟单词的个数m 然后输出查找到的兄弟单词的第k个单词。 思路:主要通过将两个字符串进行转换为数组类型,然后对两个数组进行自然排序(Arrays.sort()),进而判断两个数组是否相等(Arrays.equals(x,y原创 2017-07-01 19:42:31 · 499 阅读 · 0 评论 -
华为OJ——矩阵乘法计算量估算
题目描述 矩阵乘法的运算量与矩阵乘法的顺序强相关。例如: A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵 计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。 编写程序计算不同的计算顺序需要进行的乘法次数输入描述: 输入多行,先输入要计算乘法的矩阵个数n,每个矩阵的行数,列数,总共2n的数,最后输入原创 2017-08-03 00:31:15 · 1419 阅读 · 0 评论 -
华为OJ——字符串通配符
题目描述 问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求: 实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同) ?:匹配1个字符输入: 通配符表达式; 一组字符串。输出: 返回匹配的结果,正确输出true,错误输出false输入描述: 先输入一个原创 2017-08-03 01:53:53 · 707 阅读 · 1 评论 -
华为OJ——密码强度等级
题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。一、密码长度:5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符二、字母:0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母三、数字:0 分: 没有数字 10 分: 1 个数字 20 分: 大于1 个数原创 2017-08-05 12:52:53 · 469 阅读 · 0 评论 -
华为OJ——求最大连续bit数
题目描述 功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1输入:一个byte型的数字输出: 无返回: 对应的二进制数字中1的最大连续数输入描述: 输入一个byte数字输出描述: 输出转成二进制之后连续1的个数示例1 输入 3 输出 2 实现代码package cn.c_shuang.demo81;原创 2017-08-04 18:54:05 · 415 阅读 · 0 评论 -
华为OJ——统计大写字母个数
题目描述 找出给定字符串中大写字符(即’A’-‘Z’)的个数接口说明原型:int CalcCapital(String str); 返回值:int输入描述: 输入一个String数据输出描述: 输出string中大写字母的个数示例1 输入 add123#$%#%#O 输出 1 实现代码注意:正则表达式的使用package cn.c_shuang.demo80;i原创 2017-08-04 17:13:32 · 244 阅读 · 0 评论 -
华为OJ——将真分数分解为埃及分数
题目描述 分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。接口说明/* 功能: 将分数分解为埃及分数序列 输入参数: String pcRealFraction:真分数(格式“8/11”) 返回值: String pcEgpytFraction:分解后的埃及分数序列(原创 2017-08-04 17:00:44 · 1127 阅读 · 0 评论 -
华为OJ——字符串匹配
题目描述题目标题: 判断短字符串中的所有字符是否在长字符串中全部出现详细描述: 接口说明 原型: boolIsAllCharExist(char* pShortString,char* pLongString); 输入参数: char* pShortString:短字符串 char* pLongString:长字符串输入描述: 输入两个字符串。第一个为短字符,第二个为长字符。输原创 2017-08-04 15:31:26 · 594 阅读 · 0 评论 -
华为OJ——整形数组合并
题目描述题目标题: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 [注: 题目更新了。输出之后有换行]详细描述: 接口说明 原型: voidCombineBySort(int* pArray1,intiArray1Num,int* pArray2,intiArray2Num,int* pOutputArray,int* iOutputNum); 输入参数: int* pArra原创 2017-08-04 15:27:47 · 464 阅读 · 0 评论 -
华为OJ——计算字符串的相似度
题目描述 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把“a”替换为“b”。 2 增加一个字符,如把“abdd”变为“aebdd”。 3 删除一个字符,如把“travelling”变为“traveling”。 比如,对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通原创 2017-08-04 14:40:08 · 381 阅读 · 0 评论 -
华为OJ——超长正整数相加
题目描述 请设计一个算法完成两个超长正整数的加法。接口说明/* 请设计一个算法完成两个超长正整数的加法。 输入参数: String addend:加数 String augend:被加数 返回值:加法结果 */ public String AddLongInteger(String addend, String augend) { /在这里实现功能/return null;原创 2017-08-03 20:00:34 · 299 阅读 · 0 评论 -
华为OJ——尼科彻斯定理
题目描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 接口说明 原型:/* 功能: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 原型: int GetSequeOddNum(int m,char * pc原创 2017-08-03 15:05:37 · 693 阅读 · 0 评论 -
华为OJ——公共字串计算
题目描述题目标题:计算两个字符串的最大公共字串的长度,字符不区分大小写详细描述:接口说明 原型: int getCommonStrLength(char * pFirstStr, char * pSecondStr); 输入参数: char * pFirstStr //第一个字符串 char * pSecondStr//第二个字符串输入描述:输入两个字符串输出描述:输出一原创 2017-08-03 11:09:11 · 312 阅读 · 0 评论 -
华为OJ——参数解析
题目描述 在命令行输入如下命令: xcopy /s c:\ d:\, 各个参数如下: 参数1:命令字xcopy 参数2:字符串/s 参数3:字符串c:\ 参数4: 字符串d:\ 请编写一个参数解析程序,实现将命令行各个参数解析出来。解析规则: 1.参数分隔符为空格 2.对于用“”包含起来的参数,如果中间有空格,不能原创 2017-08-03 03:11:09 · 509 阅读 · 0 评论 -
华为OJ——计算日期到天数转换
题目描述 根据输入的日期,计算是这一年的第几天。。详细描述: 输入某年某月某日,判断这一天是这一年的第几天?。输入描述: 输入三行,分别是年,月,日输出描述:成功:返回outDay输出计算后的第几天; 失败:返回-1示例1输入 2012 12 31 输出 366 实现代码:package c原创 2017-08-03 02:27:18 · 357 阅读 · 0 评论 -
华为OJ——百钱买百鸡问题
题目描述 公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?详细描述:接口说明 原型: int GetResult(vector &list) 输入参数: 无 输出参数(指针指向的内存区域保证有效): list 鸡翁、鸡母、鸡雏组合的列表 返回值: -1原创 2017-08-03 02:14:31 · 394 阅读 · 0 评论 -
华为OJ——数据分类处理
题目描述信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、 QQ 用户、手机号码、银行帐号等信息及活动记录。 采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出。 输入描述:一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数);整数范围为0~0xFFFFFFFF,序列个数不限输出描述:从R依次中取出R,对I进行处原创 2017-07-01 15:34:10 · 453 阅读 · 0 评论 -
华为OJ——字符串排序
题目描述编写一个程序,将输入字符串中的字符按如下规则排序。 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入: BabA 输出: aABb 规则 3 :非英文字母的其它字符保持原来的位置。 如,输入: By?e 输出:原创 2017-06-30 19:37:14 · 526 阅读 · 0 评论 -
华为OJ——识别有效的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类原创 2017-06-30 01:58:33 · 864 阅读 · 0 评论 -
华为OJ——无线OSS-高精度整数加法
题目描述 在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。 如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下: 9876543210 + 1234567890 = ? 让字符串 num1=”9876543原创 2017-07-27 17:02:31 · 350 阅读 · 0 评论 -
华为OJ——iNOC产品部--完全数计算
题目描述 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。 给定函数count(int n),用于计算n以内(含n)完全数的个数。计算范围, 0 < n <= 500000原创 2017-07-27 14:24:36 · 230 阅读 · 0 评论 -
华为OJ——输入n个整数,输出其中最小的k个
题目描述 输入n个整数,输出其中最小的k个。 输入描述:输入说明1 输入两个整数 2 输入一个整数数组输出描述:输出一个整数数组示例1输入 5 2 1 3 5 7 2 输出 1 2 实现代码:注意: ①数组的排序可以用Arrays.sort(), ②对于list集合的排序可以用Collections.sort(list) ③凡是涉及到数据之间存在空格的情况的原创 2017-07-27 17:40:57 · 288 阅读 · 0 评论 -
华为OJ——找出字符串中第一个只出现一次的字符
题目描述 找出字符串中第一个只出现一次的字符输入描述:输入一个非空字符串输出描述:输出第一个只出现一次的字符,如果不存在输出-1示例1 输入 asdfasdfo 输出 o 实现代码:方法一:package cn.c_shuang.demo56;import java.util.Scanner;/** * 找出字符串中第一个只出现一次的字符 * @author Cs原创 2017-07-27 18:49:45 · 348 阅读 · 0 评论 -
华为OJ——查找组成一个偶数最接近的两个素数
题目描述 任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对输入描述:输入一个偶数输出描述:输出两个素数示例1输入 20 输出 7 13 实现代码思路: ①首先输入的肯定是偶数,从中间开始找的话就是保证两个数差距最小 ②然后再分别判断两个数是不是质数,注意:判断是否是质数,没必要原创 2017-07-27 19:10:15 · 520 阅读 · 0 评论 -
华为OJ——放苹果
题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入每个用例包含二个整数M和N。0<=m<=10,1<=n<=10。样例输入7 3样例输出8输入描述:输入两个int整数输出描述:输出结果,int型示例1输入 7 3 输出 8 实现代码:思路解题分析: 设f(m,n) 为原创 2017-07-28 13:55:23 · 321 阅读 · 0 评论 -
华为OJ——查找输入整数二进制中1的个数
题目描述 譬如:输入5 ,5的二进制为101,输出2输入描述:输入一个整数输出描述:计算整数二进制中1的个数示例1输入 5 输出 2 实现代码:package cn.c_shuang.demo59;import java.util.Scanner;/** * 查找输入整数二进制中1的个数 * @author Cshuang * */public class Mai原创 2017-07-28 14:10:37 · 323 阅读 · 0 评论 -
华为OJ——DNA序列
题目描述 一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。 给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。输入描述:输入一个strin原创 2017-07-28 14:27:16 · 338 阅读 · 0 评论