![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
华为OJ初级
每天读点paper
这个作者很懒,什么都没留下…
展开
-
华为OJ(字符串加解密)
所有情况都考虑进来,踏踏实实,一步一个脚印,网上也有简短的代码,但这是自己想出来滴,感觉慢慢积累,刷出了一丢丢成就感呢(虽然离大神们还是十万八千里)#include#includeusing namespace std;void Encrypt (char aucPassword[], char aucResult[]);int unEncrypt (char result[], char原创 2015-08-12 15:20:09 · 1233 阅读 · 2 评论 -
华为OJ刷题(称砝码,两个IP是否是同一子网)
1 称砝码(用动态规划即可解决)#include#include#include//#includeusing namespace std;#define M 99int fama(int n,int*weight,int * nums);int main(){int n;int weight[M]={0},nums[M]={0};cin>>n;原创 2015-08-08 19:29:54 · 1887 阅读 · 0 评论 -
华为OJ(记票统计)
题目:记票统计描述请实现接口:unsigned int AddCandidate (char* pCandidateName);功能:设置候选人姓名输入: char* pCandidateName 候选人姓名输出:无返回:输入值非法返回0,已经添加过返回0 ,添加成功返回1 Void Vote(char* pCandidateName);功能:投票输入: char原创 2015-08-16 20:33:26 · 951 阅读 · 0 评论 -
华为OJ(合法IP)
题目:合法IP这道题是“判断两个IP是否是同一子网”的子问题,可以用后者的segment函数即可解决,后面的问题详见另一篇博文:点击打开链接http://blog.csdn.net/yiqiwangxi/article/details/47361311我写的代码比较简单,只考虑了IP中每8位的范围是否是0-255,其他的情况,比如不能包含空格,大家可自行修改。#include#inc原创 2015-08-16 19:16:56 · 1013 阅读 · 0 评论 -
华为OJ(学英语)
因为自己动手太少,开始想了会木有思路,可能是太懒了,然后网上百度到貌似是大学同学的博客,附上链接http://blog.csdn.net/haoxiaodao/article/details/46662651 班上的学霸!看了一下思路,觉得方法比较简单,自己想重写下。第一遍写完提交未通过,仔细检查少了个return语句,后面反复提交-检查-提交-检查。。。。好吧,我想你们大概猜到错误原因了!没原创 2015-08-08 21:55:01 · 1696 阅读 · 0 评论 -
华为OJ(求最大连续bit数)
题目:求最大连续bit数描述功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字 输出: 无 返回: 对应的二进制数字中1的最大连续数知识点位运算运行时间限制10M内存限制128原创 2015-08-16 17:07:42 · 917 阅读 · 0 评论 -
华为OJ(合唱队)
1 一行字符串最后一个单词长度2合唱队#include#includeusing namespace std;#define Max 200int main(){int inc[Max],dec[Max],h[Max];int n,number;cin>>n;for(int i=0;icin>>h[原创 2015-08-05 11:41:44 · 1628 阅读 · 0 评论 -
华为OJ(计算字符串的相似度)
题目:计算字符串的相似度描述对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下:1 修改一个字符,如把“a”替换为“b”。2 增加一个字符,如把“abdd”变为“aebdd”。3 删除一个字符,如把“travelling”变为“traveling”。比如,对于“abcdefg”和“abcdef”两原创 2015-08-15 17:43:59 · 1906 阅读 · 0 评论 -
华为OJ(将真分数分解为埃及分数)
题目:将真分数分解为埃及分数描述分子为1的分数称为埃及分数。现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数。如:8/11 = 1/2+1/5+1/55+1/110。 接口说明 /* 功能: 将分数分解为埃及分数序列 输入参数: String pcRealFraction:真分数(格式“8/11”) 返回值: String原创 2015-08-16 15:00:59 · 1260 阅读 · 0 评论 -
华为OJ刷题(字符排序)
3 图片排序(忘了题目是不是这样了,其实就是字符ASCII码排序)#include#includeusing namespace std;int main(){char temp;string pic;getline(cin,pic);int len=pic.size();for(int i=0;ifor(int j=i;jif(pic[i]>p原创 2015-08-05 16:23:14 · 784 阅读 · 0 评论 -
华为OJ(在字符串中找出连续最长的数字串)
题目:在字符串中找出连续最长的数字串写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。对于空串或不包含数字的字符串,输出0输入:abcd12345ed125ss123456789输原创 2015-08-16 20:03:35 · 3085 阅读 · 0 评论 -
华为OJ(查找组成一个偶数最接近的两个素数)
首先判断n/2是否是素数,如果是,那么刚好输出;如果不是素数,i从half-1开始递减至第一个素数停止,j从half+1递增至第一个素数停止,随时判断两数是否是素数和是否为n,不多说了,直接上代码。不过下面的测试用例提交没有通过,因为使用了sqrt,华为OJ系统大概把这个也当做第三方库函数了。#includeusing namespace std;void primepair(int);原创 2015-08-11 15:15:34 · 995 阅读 · 0 评论 -
华为OJ(字符统计)
描述如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。实现以下接口: 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用) 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出 清空目前的统计结果,重新统计调用者会保证:输入的字符串以‘\0’结尾。原创 2015-08-18 14:33:57 · 2431 阅读 · 0 评论 -
华为OJ(自守数)
描述自守数是指一个数的平方的尾数等于该数自身的自然数。例如:252 = 625,762 = 5776,93762 = 87909376。请求出n以内的自守数的个数 接口说明 /* 功能: 求出n以内的自守数的个数 输入参数: int n 返回值: n以内自守数的数量。 */ public static int CalcAutomorphicNumbers( int n) {原创 2015-08-18 15:48:36 · 1962 阅读 · 0 评论 -
华为OJ(记正负)
描述首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值。知识点函数,指针运行时间限制10M内存限制128输入首先输入一个正整数n,然后输入n个整数。输出输出负数的个数,和所有正整数的平均值。注:输出原创 2015-08-18 16:04:11 · 745 阅读 · 0 评论 -
华为OJ(求解立方根)
描述:计算一个数字的立方根,不使用库函数。函数原型double getCubeRoot(double input)输入:待求解参数 double类型输出:输出参数的立方根,保留一位小数样例输入:2161样例输出:6.01常见的用牛顿迭代法,即可解决。设 r 是的根,选取 x0 作为 r 的初始近似值:过原创 2015-08-18 12:04:29 · 3193 阅读 · 0 评论 -
华为OJ(句子逆序)
将一句英文每个单词逆序输出,例如输入:I am a boy输出:boy a am I#include#include#include#includeusing namespace std;int main(){ string str,word; getline(cin,str); istringstream is(str); vector svec; while(原创 2015-08-17 21:51:23 · 714 阅读 · 0 评论 -
华为OJ(表示数字)
输入输入一个字符串输出字符中所有出现的数字前后加上符号“*”,其他字符保持不变样例输入Jkdi234klowe90a3样例输出Jkdi*234*klowe*90*a*3*#include#includeusing namespace std;int main(){ stri原创 2015-08-17 18:52:34 · 959 阅读 · 0 评论 -
华为OJ(合并表记录)
题目:合并记录表描述数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和 函数说明:public int mergeRecord(List oriList, List rstList)数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和。 @param oriList 原始表记录。 以L原创 2015-08-17 23:42:59 · 1882 阅读 · 0 评论 -
华为OJ(提取不重复的整数)
描述:输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。知识点:数组题目来源:内部整理练习阶段:初级运行时间限制:10sec内存限制:128MByte输入:输入一个int型整数输出:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数(首位不能为0,例如1010,则输出1)样例输入:9876673样例输出:37689#include原创 2015-08-17 23:30:54 · 1716 阅读 · 0 评论 -
华为OJ(密码强度等级)
题目:密码强度等级描述密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分:原创 2015-08-16 17:08:53 · 684 阅读 · 0 评论 -
华为OJ(统计大写字母个数)
之前主要是使用cin输入一行字符串,这次发现getline更合适呢#include#includeusing namespace std;int main(){ string s; int number=0; getline(cin,s); if(s.size()==0) cout<<0<<endl; else { for(int i=0;i<s.size();i+原创 2015-08-16 16:47:25 · 556 阅读 · 0 评论 -
华为OJ(字符串匹配)
题目:字符串匹配描述题目标题:判断短字符串中的所有字符是否在长字符串中全部出现详细描述:接口说明原型:boolIsAllCharExist(char* pShortString,char* pLongString);输入参数: char* pShortString:短字符串 char* pLongString:长字符串 知识点原创 2015-08-16 13:53:25 · 1901 阅读 · 0 评论 -
华为OJ(名字漂亮度)
主要是按照字母出现次数由大到小排序#include#include#includeusing namespace std;bool compare(const int a,const int b){ return a>b;}int getBeaScore(char* str){ const int TableSize=256; unsigned int hashTable原创 2015-08-12 15:44:43 · 694 阅读 · 0 评论 -
华为OJ(挑7)
分两种情况处理:times为7的倍数,conclude为包含7的但不是7的倍数情况。#includeusing namespace std;int main(){ unsigned int n; cin>>n; int conclude=0,times=0; int temp; for(int i=1;i<=n;++i) { if (i%7==0) time原创 2015-08-12 15:37:24 · 1274 阅读 · 0 评论 -
华为OJ(DNA序列)
还是只会用if else、 for#include#includeusing namespace std;int main(){ int n,idxs,idxe,m;//idxs为最大CG比对应子序列第一个字符下标,idxe为子序列最后一个字符下标; float maxstr=0; //CG-ratio string s; cin>>s;//输入DNA序列 cin>>n;//最小原创 2015-08-12 15:09:40 · 832 阅读 · 0 评论 -
华为OJ(求一个整数的二进制中1的个数)
这个问题有好多种解法,下面给出C++实现的一种(通过测试),其余方法及对比请参考:http://blog.sina.com.cn/s/blog_63ce05ca0100u0ft.html#includeusing namespace std;int main(){ int n,m=0; cin>>n; unsigned int flag=1; while(flag) {原创 2015-08-11 17:28:40 · 421 阅读 · 0 评论 -
华为OJ(放苹果)
对于m个苹果,n个盘子f(m,n):如果m如果m>n,那么有两种情况:一种有空盘子的情况,一种没有空盘子的情况,两种情况不重叠且加一起一定为情况总数。第一种情况:m个苹果放在n-1个盘子里,因为至少有1个空盘子,即f(m,n-1)第二种情况:每个盘子都至少有一个苹果,m-n个苹果再放到n个盘子里,即f(m-n,n)。由上面两种情况得到递归式f(m,n)=f(m,n-1)+f(m原创 2015-08-11 16:59:00 · 1806 阅读 · 1 评论 -
华为OJ(输出数组最小k个数)
方法1:快速排序,输出前k个数,参考剑指offer面试题30不知道问题出在哪,在OJ系统提交木有通过,提示答案错误,在此把代码贴出来。#include#includeusing namespace std;#define N 100int RandomInt(int,int);int Partion(int*,int,int,int);void swap(int&,int&);b原创 2015-08-09 21:05:49 · 558 阅读 · 0 评论 -
华为OJ(找出字符串中第一个只出现一次的字符)
题目本来很简单,想用map实现,但还是too young,动手太少,代码很简单:#include#include#includeusing namespace std;int main(){ string str; char temp; bool flag=false; map word; getline(cin,str); for(int i=0;i<str.size原创 2015-08-10 11:33:31 · 697 阅读 · 0 评论 -
华为OJ(完全数计算)
代码比较简单,不多说了,直接上代码:#includeusing namespace std;int count(int );int main(){ int n; cin>>n; cout<<count(n)<<endl; //system("pause"); return 0;}int count(int n){ int num=0; if(n500000) r原创 2015-08-09 17:18:16 · 648 阅读 · 0 评论 -
华为OJ(杨辉三角变形)
参考博客:http://blog.csdn.net/jenly121/article/details/14521287其实就是个找规律题,说起这样的题,我的内心几乎是崩溃的,感觉又回到了初高中时代,那些题还没有以前做的顺溜了。#includeusing namespace std;int run(int x);int main(){ int n; cin>>n; cout<<原创 2015-08-09 16:59:50 · 830 阅读 · 0 评论 -
华为OJ(蛇形矩阵)
木有什么好说的,主要是找规律,参考别人ACM上的代码。继续加油!#include using namespace std;int main (){ int n = 5 ; char tmp[100]; int x = 1 , y = 2 , z = 1 ; int a ; cin>>tmp; n=atoi(tmp);原创 2015-08-12 15:27:42 · 1179 阅读 · 0 评论 -
华为OJ(简单密码破解)
描述密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。 他是这么变换的,大家都原创 2015-08-27 13:32:26 · 1035 阅读 · 0 评论 -
华为OJ(整形数组合并)
题目:整形数组合并描述题目标题:将两个整型数组按照升序合并,并且过滤掉重复数组元素详细描述:接口说明原型:voidCombineBySort(int* pArray1,intiArray1Num,int* pArray2,intiArray2Num,int* pOutputArray,int* iOutputNum);输入参数: int* pArray1 :整原创 2015-08-16 13:42:40 · 1115 阅读 · 0 评论 -
华为OJ(人民币转换)
题目:人民币转换描述考试题目和要点:1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分) 2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分) 3、阿拉伯数字原创 2015-08-16 21:40:14 · 1505 阅读 · 0 评论 -
华为OJ(百钱买百鸡)
百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?#include#includeusing namespace std;int GetResult(vector&);int main(){ int n; vector num_list; cin>>n; GetRe原创 2015-08-14 19:32:45 · 1313 阅读 · 0 评论 -
华为OJ(超长正整数相加)
题目:超长正整数相加描述请设计一个算法完成两个超长正整数的加法。 接口说明 /* 请设计一个算法完成两个超长正整数的加法。 输入参数: String addend:加数 String augend:被加数 返回值:加法结果 */ public String AddLongInteger(String addend, String augend) { /原创 2015-08-15 15:38:43 · 760 阅读 · 0 评论 -
华为OJ(尼科彻斯定理)
题目如下:比较简单,不多说,上代码:#includeusing namespace std;int main(){ int m,k; cin>>m; int cuber=m*m*m; for(int i=1;i<cuber;i=i+2) if(m*i+m*(m-1)==cuber) { k=i; break; } for(int j=原创 2015-08-15 15:32:19 · 694 阅读 · 0 评论 -
华为OJ(最长公共子串及公共最长子序列)
先说直观的方法,先给出链接:http://blog.csdn.net/xpyimapingchuan/article/details/46822645直接上代码,很好懂,不多说了。方案1:#include #include using namespace std;int main(){ string str1,str2; getline(cin,str1原创 2015-08-14 21:51:47 · 1250 阅读 · 0 评论