![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
华为OJ
Chan_Keh
https://github.com/chankeh
展开
-
华为OJ:字符串最后一个单词的长度
字符串最后一个单词的长度题目描述 计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 输入例子: hello world 输出例子: 5//方法一:#include <iostream>#include <string.h>using namespace std;bool judge(原创 2017-02-19 19:00:06 · 197 阅读 · 0 评论 -
华为OJ:ip地址与整数之间的转换
原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数。 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 00001010 0 00000000 3 000原创 2017-02-19 22:02:43 · 559 阅读 · 0 评论 -
华为OJ:蛇形矩阵
题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 接口说明 原型 void GetResult(int Num, char * pResult); 输入参数: int Num:输入的正整数N 输出参数: int * pResul原创 2017-02-19 22:05:51 · 497 阅读 · 0 评论 -
华为OJ:判断两个IP是否属于同一子网
题目描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。 子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否中同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。 示例: I P 地址 192.168.0.1 子网掩码 255.255.2原创 2017-02-19 22:08:01 · 528 阅读 · 0 评论 -
华为OJ:名字的漂亮度
题目描述 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。 每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。 给出多个名字,计算每个名字最大可能的“漂亮度”。输入描述: 整数N,后续N个名字输出描述: 每个名称可能的最大漂亮程度输入例子: 2 zhangsan lisi输出例子:原创 2017-02-19 22:13:42 · 212 阅读 · 0 评论 -
华为OJ:(练习用)挑7
题目描述 输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37…70,71,72,73…)的个数输入描述: 一个正整数N。(N不大于30000)输出描述: 不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.输入例子: 20输出例子: 3解析:#include <iostream>using namespace std;bool judge原创 2017-02-19 22:24:48 · 280 阅读 · 0 评论 -
华为OJ:称砝码
题目描述 现有一组砝码,重量互不相等,分别为m1,m2,m3…mn; 每种砝码对应的数量为x1,x2,x3…xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。注: 称重重量包括0方法原型:public static int fama(int n, int[] weight, int[] nums)输入描述: 输入包含多组测试数据。对于每组测试数据:第一行:n — 砝码数(范围[原创 2017-02-19 22:28:36 · 431 阅读 · 0 评论 -
华为OJ:学英语
题目描述 Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文: 如22:twenty two,123:one hundred and twenty three。说明: 数字为正整数,长度不超过九位,不考虑小数,转化结果为英文小写; 输出格式为twenty two; 非法数据请返回“error”; 关键字提示:and,billion,million,thousand,hun原创 2017-02-19 22:32:36 · 511 阅读 · 0 评论 -
华为OJ:按字节截取字符串
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如”我ABC”4,应该截为”我AB”,输入”我ABC汉DEF”6,应该输出为”我ABC”而不是”我ABC+汉的半个”。 输入描述: 输入待截取的字符串及长度输出描述: 截取后的字符串输入例子: 我ABC汉DEF 6输出例子: 我ABC#include <iostream>#includ原创 2017-02-19 22:33:57 · 344 阅读 · 0 评论 -
LeetCode:找出字符串中第一个只出现一次的字符
输入描述: 输入一个非空字符串输出描述: 输出第一个只出现一次的字符,如果不存在输出-1输入例子: asdfasdfo输出例子: o解析:#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;int main(){ string str;原创 2017-02-20 20:31:04 · 1631 阅读 · 0 评论 -
华为OJ:查找组成一个偶数最接近的两个素数
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 输入描述: 输入一个偶数输出描述: 输出两个素数输入例子: 20输出例子: 7 13解析:#include <iostream>#include <vector>#include <cmath>#include <set>using namespa原创 2017-02-20 20:32:11 · 308 阅读 · 0 评论 -
华为OJ:放苹果
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入 每个用例包含二个整数M和N。0<=m<=10,1<=n<=10。样例输入 7 3样例输出 8/** * 计算放苹果方法数目输入值非法时返回-11 <= m,n <= 10@param m 苹果数目@param n 盘子数目数@return 放置原创 2017-02-20 21:01:07 · 365 阅读 · 0 评论 -
华为OJ:DNA序列
一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。 给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。输入描述: 输入一个string型基因序列,和原创 2017-02-21 23:25:39 · 469 阅读 · 0 评论 -
华为OJ:24点游戏算法
问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利 输入: 4个1-10的数字。[数字允许重复,测试用例保证无异常数字] 输出: true or false输入描述: 输入4个int整数输出描述: 返回能否得到24点,能输出true,不能输出false输入例子: 7 2 1 10输出例子: true#include<iostream>#include<strin原创 2017-02-21 23:33:02 · 721 阅读 · 0 评论 -
华为OJ:字符串通配符
问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。 要求: 实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同) ?:匹配1个字符输入: 通配符表达式; 一组字符串。输出: 返回匹配的结果,正确输出true,错误输出false#include<stdio.h>//u原创 2017-02-21 23:43:29 · 369 阅读 · 0 评论 -
华为OJ:字符串通配符
问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。 要求: 实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同) ?:匹配1个字符输入: 通配符表达式; 一组字符串。输出: 返回匹配的结果,正确输出true,错误输出false#include<stdio.h>//u原创 2017-02-23 21:24:45 · 341 阅读 · 0 评论 -
华为OJ:字符串运用-密码截取
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的原创 2017-02-19 21:52:04 · 252 阅读 · 0 评论 -
华为OJ:字符串合并处理
按照指定规则对输入的字符串进行处理。 详细描述: 将输入的两个字符串合并。 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。 对排序后的字符串进行操作,如果字符为‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,则对他们所代表的16进制的数进行BIT倒序的操作,并转换为相应的大写字符。如字符为‘4’,为010原创 2017-02-19 21:35:48 · 478 阅读 · 0 评论 -
华为OJ:计算字符个数
计算字符个数题目描述 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。输出描述: 输出输入字符串中含有该字符的个数。输入例子: ABCDEF A方法一:#include <iostream>#include <string>using namesp原创 2017-02-19 19:02:25 · 322 阅读 · 0 评论 -
华为OJ:明明的随机数
明明的随机数 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 Input Param n原创 2017-02-19 19:08:36 · 539 阅读 · 0 评论 -
华为OJ:字符串分割
字符串分隔 题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述: 连续输入字符串(输入2次,每个字符串长度小于100)输出描述: 输出到长度为8的新字符串数组输入例子: abc 123456789输出例子: abc00000 12345678 90000000解答1:#includ原创 2017-02-19 19:10:35 · 421 阅读 · 0 评论 -
华为OJ:进制转换
进制转换 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )输入描述: 输入一个十六进制的数值字符串。输出描述: 输出该数值的十进制字符串。输入例子: 0xA 输出例子: 10解答(个人版):#include <iostream>#include <string>#include <vector>#include <math.h>using原创 2017-02-19 19:44:11 · 358 阅读 · 0 评论 -
华为OJ:质数因子
质数因子 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格详细描述:函数接口说明: public String getResult(long ulDataInput) 输入参数: long ulDataInput:输入的正整数 返回值: String 输入描述: 输入一个long型整数输出描述:原创 2017-02-19 19:56:45 · 303 阅读 · 0 评论 -
华为OJ:合并表记录
题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述: 先输入键值对的个数 然后输入成对的index和value值,以空格隔开输出描述: 输出合并后的键值对(多行)输入例子: 4 0 1 0 2 1 2 3 4输出例子: 0 3 1 2 3 4#include <iostream>#inc原创 2017-02-19 20:22:20 · 297 阅读 · 0 评论 -
华为OJ:提取不重复的整数
题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述: 输入一个int型整数输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数输入例子: 9876673输出例子: 37689#include <iostream>#include <vector>#include <algorithm>using namespace std;原创 2017-02-19 20:26:43 · 260 阅读 · 0 评论 -
华为OJ:计算字符串中含有的不同字符的个数
题目描述 编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。输入描述: 输入N个字符,字符在ACSII码范围内。输出描述: 输出范围在(0~127)字符的个数。输入例子: abc输出例子: 3解答1:#include <iostream>#include <vector>#include <algorithm>#inclu原创 2017-02-19 20:31:53 · 2260 阅读 · 0 评论 -
华为OJ:数字颠倒
描述: 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述: 输入一个int整数输出描述: 将这个整数以字符串的形式逆序输出输入例子: 1516000输出例子: 0006151解答1:#include <iostream>#include <vector>using namespace st原创 2017-02-19 20:36:12 · 298 阅读 · 0 评论 -
华为OJ:翻转字符串
题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:输入描述: 输入N个字符输出描述: 输出该字符串反转后的字符串输入例子: abcd输出例子: dcba解答1:#include <iostream>#include <stack>#include <string>using namespace std;int main(){ string st原创 2017-02-19 20:39:01 · 289 阅读 · 0 评论 -
华为OJ:句子逆序
题目描述 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明 /** * 反转句子 * * @param sentence 原句子 * @return 反转后的句子 */ public String reverse(String sentenc原创 2017-02-19 20:42:01 · 619 阅读 · 2 评论 -
华为OJ:字串的连接最长路径查找
题目描述 给定n个字符串,请对n个字符串按照字典序排列。 输入描述: 输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述: 数据输出n行,输出结果为按照字典序排列的字符串。 (注意:元素可以重复)输入例子: 9 cap to cat card two too up boat boot输出例子:原创 2017-02-19 20:46:21 · 318 阅读 · 0 评论 -
华为OJ:求int型正整数在内存中存储时1的个数
求int型正整数在内存中存储时1的个数 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述: 输入一个整数(int类型)输出描述: 这个数转换成2进制后,输出1的个数输入例子: 5输出例子: 2解答:#include <iostream>#include <vector>using namespace std;int main(){ int原创 2017-02-19 20:49:55 · 295 阅读 · 0 评论 -
华为OJ:字符串排序
题目描述 编写一个程序,将输入字符串中的字符按如下规则排序。 规则1:英文字母从A到Z排列,不区分大小写。 如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入:BabA 输出:aABb 规则3:非英文字母的其它字符保持原来的位置。 如,输入:By?e 输出:Be?y 样例: 输入:原创 2017-02-19 20:51:41 · 448 阅读 · 0 评论 -
华为OJ:查找兄弟单词
查找兄弟单词输入描述: 先输入字典中单词的个数,再输入n个单词作为字典单词。 输入一个单词,查找其在字典中兄弟单词的个数 再输入数字n输出描述: 根据输入,输出查找到的兄弟单词的个数输入例子: 3 abc bca cab abc 1输出例子: 2 bca#include <cstdio>#include <string>#include <vector>#include原创 2017-02-19 21:04:37 · 494 阅读 · 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原创 2017-02-24 20:45:51 · 395 阅读 · 0 评论