ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:148.28KB ,
资源ID:12216200      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12216200.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(从网上整理的华为机试题目.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

从网上整理的华为机试题目.docx

1、从网上整理的华为机试题目一、华为机试2018年校招10号参加的华为的机试,这次的3道题难度适中。第一题字符串,第二题贪心算法(会不会),dp可以解,第三题长整数相乘。因为题主做过第三题原题,刚开始就把第三题秒了然后开始做第一题,一般10分钟就可以搞定。第二题要想一下,不过也差不多是原题,Leetcode上第55题jump game应该是此题原型。因为都刷过几乎是原题的原故,一个小时不到3题就AC完了下面是完整题目和代码题目一、给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。举例!假设原始字符串为eeefgghhh则每种字符出现的次数分别是 3次 1次

2、 1次 3次重新排序后输出的字符串如下:efghegheh编写程序,实现上述功能。【温馨提示】1.原始字符串中仅可能出现“数字”和“字母”;2.请注意区分字母大小写。1.#include2.#include3.#include4.#include5.usingnamespacestd;6.intmain()7.stringstr;8.inta128=0;9.while(cinstr)10.for(inti=0;i();i+)11.astri+;.位。我不放心,输出测试一下。之后就简单了,输出a数组中从小到大第一个值为1的i值即可。值得注意的是,这种题其实写在一个main函数里就够了,而且这样写

3、也比较好。毕竟机试不是做项目,不需要模块化,这样修改起来也比较容易。题目二、宝宝表示这道题其实不难,就是两个字,复杂。我的思路大概就是1.首先判断所给矩形是否相交,不相交直接输出02.若相交,将相交面积表示出来,并输出结果最后发现貌似判断相交的思路会影响相交求面积的思路(正所谓数学题多问,第一问为第二问做铺垫一样)由于我的判相交思路不好影响了第二问,导致这一题我没做出来。思路大概是求出两个矩形中心坐标,用平行于坐标轴的线段连接两个中心,平行于x轴的线段长度若记为cenX,另一个记为cenY,我就判断cenX,Y与两矩形边长的关系。做完后才发现对第二问毫无帮助,炸了。浴室这一题200分我得了不到

4、100分。(没代码)题目三、这道题其实没怎么做出来,就不好说什么。下面是这道题正解的源码:#include #include #include using namespace std; int num400400; int len400400; int max(int a,int b) if(ab) return a; else return b; int main() int m,n; scanf(%d %d,&m,&n); for(int i=1;i=m;i+) leni0=0; for(int j=1;j=n;j+) len0j=-1; scanf(%d,&numij); if(numi

5、j) lenij=lenij-1+numij; else lenij=0; stack S; int ans=0,tmp; for(int j=n;j0;j-) int W,L; tmp=0; if(ans=j*m) break; (0); for(int i=1;ilen()j) (i); else while(!()&lenij=len()j) L=(); (); int p=(); W=(i-p-1); tmp=max(tmp,W*lenLj); (i); int LL; if(!()LL=(); while(!() L=(); (); int p=(); if(p) W=(LL-p);

6、 else W=LL;(); tmp=max(tmp,W*lenLj); ans=max(tmp,ans); printf(%dn,ans); return 0; 三华为挑战赛(也是模拟机试)题目一、这种第一题摆明了是送分题,不好说什么,有一点编程底子的10分钟内都能做出来#include #include using namespace std; int main() int m,n; int i,j; int temp; bool flag; cinmn; for(i=m;i=n;i+) flag=true; temp=(int)sqrt(i); for(j=2;j=temp;j+) if

7、(i%j=0) flag=false; if(flag=true) couti=2就是结果输出。那么接下来问题来了:1.计算机如何接受这些输入,因为有要求以“,”为分隔符因为有“,”,作为字符存在,又不限制输入的具体个数,所以无法用int数组接收这些输入,此处应选择C+字符串string str;作为接收输入。那么很明显,本题对C+字符串是一个考察点,并且考察重要程度甚至大于这道题的算法本身。2.如何在一个str中取得这些数字毫无疑问考察应试者的字符串处理能力。我先想的是以逗号为分隔符,由于C+字符串可以以下标取出值(如stri),取得每一个逗号的位置,后一个减前一个得到中间的数字。然后发现(

8、)函数会连逗号一起取出,所以这不是一个可取的方法,更不是一个好方法。好的处理方法应该是这样,如下:char a10; int p=0; int numN; int i,j,cnt=0; cpp view plain copy cinstr; for(i=0;i();+i) 写字母转成下一位大写字母,如A转成B,特例为Z转成A2.小写字母类似3.对数字做如下转换:偶数减2,特例0转成8;奇数加1,特例9转成0.第二题算麻将的番数:规则如下:1.有条和饼两副牌,使用T与O表示,1T代表1条2.其中出现1条2条3条连着则加1番3.出现4个一样的牌则代表杠,加两番连对则加4番输入规则:输入者保证牌数已

9、经胡了,格式例如1T2T3T,4O5O6O,3T4T5T,5O6O7O,7T7T.中间使用“,”逗号隔开,结尾是句点。输出规则:输出一个整型值代表番数。第三题找出一篇文章中单词出现频率最高的前两位(不分并列情况):文章字符串规则如下:1.文章单词使用空格、句点与逗号分隔2.全部转成小写字母考后感题目分数:第一道60分;第二道100分;第三道160分;自己做对了前两道,160分吧,一般。最后一题只剩10分钟了,也没去做了。感谢非常感谢华为(尤其是刘茜,我不知道她是谁),之前本来第一次笔试我回短信就已经晚了,而且第二天有因为非常紧急的事情又不能去了,只能表示歉意。谁知还给自己一次机试的机会。在此对

10、这种负责的精神表示崇高的敬意七2016机试题目实现语言:C+ 题目简单,没有涉及太多的算法,就是一些输入输出的格式需要注意题目一描述根据指定的分隔符分隔字符串,并输出指定的段。如果指定的段超过分隔的段数,输出:NULL举例:AAABBBCCC2字符串为:AAABBBCCC?分隔符为:?指定的段为:2字符串分割为:AAA BBB CCC共三段,第2段字符串为:BBB输入输出格式要求输入分隔字符串长度小于128个字符,指定的段是一个正整数。样例输入:AAABBBCCC2输出:BBB实现代码如下:#include #include #include #include #include using n

11、amespace std;int getNum(string inpus) int objNum = 0,t = 1; for (long i = () - 1; i = 0 ; - i) if (isdigit(inpusi) & inpusi != ) objNum += (inpusi- 0) * t; t *= 10; else break; return objNum;int main(int argc, const char * argv) string inpus; cin inpus; vector objStringInfo; string a = ; for (int i

12、= 0; i (); +i) if (inpusi = | i = () (a); a = ; else a += inpusi; cout objStringInfogetNum(inpus) - 1 endl; return 0;运行结果:题目一.png题目二输入一组大于0小于1000的整数,且均不相同,逗号隔开,输出其中能被这些整数中其他元素整除的那些元素。输入输出格式要求输入要求同上述描述,输出要求整数顺序按照输入时的顺序输出。样例输入:2,4,6,8,10,12,3,9输出:4,6,8,10,12,9代码如下:#include #include #include using name

13、space std;int getStringNum(string inpus) int objNum = 0,t = 1; for (long i = () - 1; i = 0 ; - i) if (isdigit(inpusi) & inpusi != ) objNum += (inpusi- 0) * t; t *= 10; else break; return objNum;vector getNum(string inputs) vector v; vector num; string buff = ; for (int i = 0;i = (); +i) if (i = () -

14、 1) buff = inputs() - 1; (buff); buff = ; if (inputsi = ,) (buff); buff = ; else buff += inputsi; for (int i = 0;i s; vector array = getNum(s); int k = 0,result100 = 0; for (int i = 0;i (); +i) for (int j = 0;j (); +j) if (arrayi % arrayj = 0 & arrayi != arrayj) resultk = arrayi; k +; break; for (in

15、t i = 0;i k; +i) if (i != k-1) cout resulti ,; else cout resulti endl; return 0;题目三描述:大数求余输入两个超长整型构成的字符串,使用空格隔开,求前者除以后者的余数。输入输出格式要求输入的每个字符串最大长度为100个字符,输出为余数值,如果结果异常输出NULL样例输入:9 输出:6172844主要涉及大数问题,A对B取模,即除法运算,可以利用高精度减法解决,前期想的时候细节上可能会有问题,需要注意减法过程中对符号的处理代码如下:#include #include #include using namespace s

16、td;string subtraction(string a,string b)/大数减法 int arr1100 = 0,arr2100 = 0,arr3100 = 0; for (long i = () - 1,k = 0;i = 0; -i) arr1k+ = ai - 0; for (long i = () - 1,k = 0;i = 0; -i) arr2k+ = bi - 0; long len = () () ():(); int k = 0; for (int i = 0;i len; +i) arr3k+ = arr1i - arr2i; for (int i = 0;i k

17、; +i) if (arr3k - 1 = 0; -i) buff = arr3i + 0; result += buff; return result;string aModeB(string a,string b)/大数取模 if () () while (b) 0) a = subtraction(a, b); return a; else if () = () if(b) 0) while (b) 0) a = subtraction(a, b); return a; else return a; else return a; int main(int argc, const char * argv) string a,b; cin a; cin b; cout aModeB(a, b) endl; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1