版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华为2014笔试算法题汇总1.通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde过滤结果为“abcde0要求实现函数:voidstringFilter(constchar*pInputStr,longlInputLen,char*pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“deefd
2、9;输出:“def”输入:“afafafaf”输出:“af”输入:“pppppppp”输出:“p”main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响cppviewplaincopy/#include<iostream>#include<cassert>usingnamespacestd;boolg_flag26;voidstringFilter(constchar*pInputStr,lon
3、glInputLen,char*pOutputStr)assert(pInputStr!=NULL);inti=0;if(pInputStr=NULL|lInputLen<=1)return;constchar*p=pInputStr;while(*p!='0')if(g_flag(*p-'a')p+;elsepOutputStri+=*p;g_flag*p-'a'=1;p+;pOutputStri='0;intmain()memset(g_flag,0,sizeof(g_flag);charinput="abacacde
4、"char*output=newcharstrlen(input)+1;stringFilter(input,strlen(input),output);cout<<output<<endl;deleteoutput;return0;2.通过键盘输入一串小写字母(az)ffl成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串"abcbc”由于无连续重复字符,压缩后的字符串还是"abcbc"。2、压缩字段的格式为"字符重复的次
5、数十字符”。例如:字符串"xxxyyyyyyz”压缩后就成为"3x6yz"。要求实现函数:voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“cccddeci输出:“3c2de2C输入:“adef输出:“adef输入:“pppppppp”输出:“8p”cppviewp
6、laincopy/#include<iostream>#include<cassert>usingnamespacestd;voidstringZip(constchar*pInputStr,longlInputLen,char*pOutputStr)constchar*p=pInputStr;intnum=1;inti=0;p+;while(*p!=NULL)while(*p=*(p-1)&&*p!=NULL)num+;P+;if(num>1)intsize=0;inttemp=num;while(num)/计算位数size+;num/=10;n
7、um=1;for(intj=size;j>0;j-)pOutputStri+j-1='0'+temp%10;temp/=10;i+=size;pOutputStri+=*(p-1);p+;elsepOutputStri+ = *(p-1);p+;pOutputStri='0;intmain()charinput="cccddecc"char*output=newcharstrlen(input)+1;stringZip(input,strlen(input),output);cout<<output<<endl;retu
8、rn0;3.通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1运算符操作数2",“操作数”与“运算符”之间以一个空格隔开。补充说明:1、操作数为正整数,不需要考虑计算结果溢出的情况。2、若输入算式格式错误,输出结果为“0”。要求实现函数:voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长;【注意】只需要
9、完成该函数功能算法,中间不需要有任何IO的输入输出示例输入:“4+7”输出:“11”输入:“4-7”输出:“-3”输入:“9+7”输出:“0”注:格式错误cppviewplaincopy/#include<iostream>usingnamespacestd;voidarithmetic(constchar*pInputStr,longlInputLen,char*pOutputStr)constchar*input=pInputStr;char*output=pOutputStr;intsum=0;intoperator1=0;intoperator2=0;char*temp=n
10、ewchar5;char*ope=temp;while(*input!='')/获得操作数1sum=sum*10+(*input+-'0');input+;operatori=sum;sum=0;while(*input!='')*temp+=*input+;input+;*temp='0'if(strlen(ope)>1)*output+='0'*output='0'return;sum=sum*10+(*input+-'0');operator2=sum;sum=0;swi
11、tch(*ope)case'+':itoa(operator1+operator2,pOutputStr,10);break;case'-':itoa(operator1-operator2,pOutputStr,10);break;default:*output+='0'*output='0'return;intmain()charinput="4-7"charoutput口=""arithmetic(input,strlen(input),output);cout<<outp
12、ut<<endl;return0;4输入1-50个数字,求出最小数和最大数的和cppviewplaincopy/华为2014年机试题1:输入1-50个数字,求出最小数和最大数的和/输入以逗号隔开#include<stdio.h>#defineN50voidsort(inta口,intn);intmain(void)charstr100;intaN=0;gets(str);/度点1:动态的输入1-50个整数,不能确定个数,只能用字符串输入,然后分离出来inti=0;intj=0;intsign=1;while(stri!='0')if(stri!='
13、;,')/输入时要在半角输入if(stri='-')要点:2:有负整数的输入/i+;易错点1sign=-1;elseif(stri!='0')不用elsefl勺话,负号也会减去'0'aj=aj*10+stri-'0'/要点3:输入的可以是多位数i+;if(stri=','|stri='0')/这个判断是在i自加以后aj=aj*sign;易错点2sign=1;/易错点3j+;/j就是a数组的个数范围0到j-1sort(a,j);printf("Maxnumber+Minnumber=
14、%d",a0+aj-1);return0;voidsort(inta口,intn)/选择排序inti,j;intk;inttemp;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(ak>aj)k=j;if(i!=k)temp=ak;ak=ai;ai=temp;for(i=0;i<n;i+)printf("%-5d",ai);puts("");备注说明,非正文,实际使用可删除如下部分。本内容仅给予阅读编辑指点:1、本文件由微软OFFICE办公软件编辑而成,同时支持WPS。2、文件可重新编辑整理。3、建议结合本公司和个人的实际情况进行修正编辑。4、因编辑原因,部分文件文字有些微错误的,请自行修正,并不影响本文阅读。Note:itisnotthetext.Thefollowingpartscanbedeletedforactualuse.Thiscontentonlygivesreadingandeditinginstructions:1. ThisdocumentiseditedbyMicrosoftofficeofficesoftwareandsupportsWPS.2. Thefilescanbeedite
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 14574:2025 EN Fine ceramics (advanced ceramics,advanced technical ceramics) - Mechanical properties of ceramic composites at high temperature - Determination of tensile
- 2025年云南建筑安全员A证考试题库附答案
- 贵州大学《集成电路原理》2023-2024学年第一学期期末试卷
- 贵阳幼儿师范高等专科学校《成矿规律与成矿预测》2023-2024学年第一学期期末试卷
- 2025广东建筑安全员知识题库
- 2025青海省建筑安全员《C证》考试题库
- 硅湖职业技术学院《化工原理B》2023-2024学年第一学期期末试卷
- 2025年江苏省安全员A证考试题库
- 2025湖北省建筑安全员A证考试题库附答案
- 广州新华学院《体育活动组织与策划》2023-2024学年第一学期期末试卷
- 数学-2025年高考综合改革适应性演练(八省联考)
- 2024-2025学年安徽省六安市金安区三上数学期末调研试题含解析
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之10:“5领导作用-5.4创新文化”(雷泽佳编制-2025B0)
- 2024年期货居间业务代理合同范本2篇
- 2024-2025学年上学期杭州初中英语九年级期末试卷
- 网络与信息安全管理组织机构设置及工作职责
- 医院后勤节能降耗工作计划
- 2024年医疗器械经营质量管理规范培训课件
- 2024国家级天然气购销合作协议模板
- 中国大模型行业发展现状调查、竞争格局分析及未来前景预测报告
- GB/T 19228.1-2024不锈钢卡压式管件组件第1部分:卡压式管件
评论
0/150
提交评论