大师兄教你如何过华为机试

合集下载

华为机试成功归来,与小伙伴们分享下经验(西电)

华为机试成功归来,与小伙伴们分享下经验(西电)

抒情:前段时间参加华为机试,机试通过的可以优先录取,优先选择岗位和工作地,关键是面的好,还可以谈更高的工资,最多在西安可以拿到18W。

好处还是蛮多的,抱着试试看的态度就去了。

疗效还不错。

提前在网上交了简历,周围同学只要报了软件研发类的相关岗位都收到短信通知,需要用到编程的同学基本上都受到短信了。

一天三波,在西工大毅字楼三楼机房,南门进去直走左拐就到了,我是第二天早上的机试,前一天已经听机试过的同学考的内容涉及数组、链表、指针、字符串、循环、枚举、排序等吧,这个估计要看人品,平时出门多扶老奶奶过马路吧。

其实考过后发现这个机试跟平时做项目不一样,项目可能更多的注重实现研究所需要的某个功能不会去注意这么多细节,但是机试考的更多的是基本功。

下面重点跟大家分享下上机题吧,我只列举了我抽到的三个,其他同学抽到的跟这个大同小异吧。

大家自己编写下,对即将开始的面试都会有帮助的。

考试内容:数组、链表、指针、字符串、循环、枚举、排序等(从考过的同学那儿总结的可能不全)试题结构:考试总共三道题,说是难中易,初级题(60分)、中级题(100分)、高级题(160分),最难的接近一百行,说多不多,但自己敲出来还是费了点劲,考试时间:两个小时。

平时练得少可能稍微捉鸡点。

最简单的一个描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数;(2) 保证至少有60%的学生及格;(3) 如果所有的学生都高于60分,则及格线为60分输入:输入10个整数,取值0~100输出:输出及格线,10的倍数输入样例:61 51 49 3020 10 70 80 90 99输出样例:50自己编写代码简单如下:1. #include <stdio.h>2.3.4. void bubbleSort(int arr[])5. {6. int i = 0;7. int j = 0;8. int t = 0;9.10. for(i = 0;i < 10; i++)11. {12. for(j = 0; j < (9 - i); j++)13. {14. if(arr[j + 1] < arr[j])15. {16. t = arr[j + 1];17. arr[j + 1] = arr[j];18. arr[j] = t;19. }20. }21. }22. }23.24. int getPassLine(int a[])25. {26. int i = 0;27.28. bubbleSort(a);29.30. if (a[0] >= 60)31. {32. return 60;33. }34. else35. {36. return ((a[4] / 10) * 10);37. }38.39. }40.41.42.43. int main()44. {45. int a[10] = {0};46.47. scanf("%d %d %d %d %d %d %d %d %d %d", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]);48.49. printf("%d", getPassLine(a));50.51. return 0;52. }描述:一条长廊里依次装有n(1 ≤n ≤65535)盏电灯,从头到尾编号1、2、3、…n-1、n。

记一次华为机试

记一次华为机试

记⼀次华为机试介绍华为机试分为 3 题,两题 100 分,⼀题 200 分,压线 150 分算你过,时间150分钟,⽀持多语⾔环境(⽜客⽹),考试时需全程打开摄像头,电脑屏幕分享,⼿机打开某⼩程序(可⽤计算器)不退出,可⽤本地 IDE, 会有⼀些测试题给你熟悉环境预热的。

备注: 由于脑容量有限,题⽬具体的描述笔者已经记不清了,但是⼀些考点还是记忆犹新,遂记录分享下。

做机考这⼏点很重要, 第⼀点是你要看明⽩它的输⼊输出是什么? 第⼆点是要快,⽐如说你明知道有现成的意⼤利炮可以轰它,咱就不要⾃⼰造个⼟炮了,挺浪费时间的,毕竟机考的本质其实是刷⼈, 第三点就是⼼态⼀定要好,你会做的你要尽量 100%把它做出来,遇到不会的智商题,那也就听天由命了。

消消乐(字符串)描述给定⼀个只包含⼤⼩写字母的字符串(⼤⼩写敏感),若相邻两个元素相等则消除,直到最后字符串消除不了了,输出消消乐后字符串的长度,若遇到⾮⼤⼩写字母以外的字符,则输出0。

⽰例输⼊: mMbccbc输出: 3解释:cc消掉,然后bb消掉,最后剩余mMc,输出长度3题解这⾥我是把⼀些特殊情况单独拎出来处理,然后创建了⼀个字符串res去存最后得到的字符串,然后输出其长度。

const readline = require('readline');const rl = readline.createInterface({input: process.stdin,output: process.stdout,});rl.on('line', function (line) {console.log(solution(line.trim()));});function solution(str) {if (/[^a-zA-Z]/.test(str)) {return 0;}if (str.length === 1) {return 1;}if (str.length === 2) {if (str[0] === str[1]) {return 0;} else {return 2;}}let res = '';let cur = 0;for (let i = 0; i < str.length - 1; i++) {if (str[i] === str[i + 1]) {i++;} else {if (res.length > 0 && res[res.length - 1] === str[i]) {res = res.slice(0, res.length - 1);} else {res += str[i];}}cur = i;}cur = cur + 1;if (str[cur]) {if (res[res.length - 1] === str[cur]) {res = res.slice(0, res.length - 1);} else {res += str[cur];}}return res.length;}矩阵最⼤值(⼆维矩阵)描述给定⼀个n*n的只包含0和1的⼆维矩阵,请你计算出该矩阵的最⼤值。

华为面试秘笈

华为面试秘笈

华为面试秘笈华为面试秘笈----- batman作为华为面试过来者,给想进入华为的同仁一些面试方面的经验和技巧,希望能够对大家有点点的帮助,但多数情况下需要面试者自己的反应能力了。

我个人认为,只要有过一年多的工作经验,技术面试基本没有什么问题。

但是,要说明一点的是,华为招人的原则大家是知道的,本三硕二,而且本科以前是需要211的大学,现在据说要改规矩了,要求是指定的几所大学,具体尚不明确。

但是如果你有3年以上工作经验,基本上这方面的限制就没有了。

面试分为4轮:1)技术面试,一般是部门的技术专家;2)综合面试,一般是10-17个人分两组,3-4个面试官进行压力测试,面试官一般是人力的;3)人力面试,基本上是了解个人的一些常见的问题,综合素质以及待遇等;4)部门老大面试,基本上是和你谈薪资待遇,一般情况下就是谈下你的工作经历,这是搞忽悠的,基本上就是了解些信息后好给你砍价,这就是他们的职责,不管你要的多低都要砍个100-2000这个样子,不要钱的例外 ^_^。

技巧:对应上面的四点1)技术面试如果有人推荐或者有里面的人打电话找到你了,基本上做个电话面试就不需要做题目了,然后会有秘书在周五下午之前会发送邀请短信以及注意事项给你,让你周六过去面试。

过去后找到相应的接待的小姐,说你有预约,这时候她会告诉你,你在等候区等待即可,否则,你需要做题,软件一般是C语言的基础,网络上有很多,考试的内容基本上是换汤不换药,就那几个方面。

2)综合面试的情况如下。

一般会有10-17人参加,根据当天参加面试人数的多少决定。

面试的内容分为三个个环节,第一是自我介绍,第二是小组讨论,第三是总结。

首先会发每人一张纸,折为四段或者三段,等分,然后折成一个三个面的形状,一面贴桌上,另两面写上自己的名字。

=========自我介绍部分:【言简意赅】自我介绍要点:叫什么,哪里人,什么时候毕业,毕业哪个学校,简单介绍下工作经历,强调下,是简单,不喜欢罗嗦的人,但是要有条理,然后就是你的爱好,优点,缺点,座右铭和人生目标等。

华为面试常见问题回答技巧

华为面试常见问题回答技巧

16个经典面试问题答复思路面试过程中,面试官会向应聘者发问,而应聘者的答复将成为面试官考虑是否接受他的重要依据。

对应聘者而言,了解这些问题背后的“猫腻〞至关重要。

本文对面试中经常出现的一些典型问题进行了整理,并给出相应的答复思路和参考答案。

读者无需过分关注分析的细节,关键是要从这些分析中“悟〞出面试的规律及答复下列问题的思维方式,到达“活学活用〞。

问题一:“请你自我介绍一下〞思路:1、这是面试的必考题目。

2、介绍内容要与个人简历相一致。

3、表述方式上尽量口语化。

4、要切中要害,不谈无关、无用的内容。

5、条理要清晰,层次要清楚。

6、事先最好以文字的形式写好背熟。

问题二:“谈谈你的家庭情况〞思路:1、况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。

2、简单地罗列家庭人口。

3、宜强调温馨和睦的家庭气氛。

4、宜强调父母对自己教育的重视。

5、宜强调各位家庭成员的良好状况。

6、宜强调家庭成员对自己工作的支持。

7、宜强调自己对家庭的责任感。

问题三:“你有什么业余爱好?〞思路:1、业余爱好能在一定程度上反映应聘者的性格、观念、心态,这是招聘单位问该问题的主要原因。

2、最好不要说自己没有业余爱好。

3、不要说自己有那些庸俗的、令人感觉不好的爱好。

4、最好不要说自己仅限于读书、听音乐、上网,否那么可能令面试官疑心应聘者性格孤僻。

5、最好能有一些户外的业余爱好来“点缀〞你的形象。

问题四:“你最崇拜谁?〞思路:1、最崇拜的人能在一定程度上反映应聘者的性格、观念、心态,这是面试官问该问题的主要原因。

2、不宜说自己谁都不崇拜。

3、不宜说崇拜自己。

4、不宜说崇拜一个虚幻的、或是不知名的人。

5、不宜说崇拜一个明显具有负面形象的人。

6、所崇拜的人人最好与自己所应聘的工作能“搭〞上关系。

7、最好说出自己所崇拜的人的哪些品质、哪些思想感染着自己、鼓舞着自己。

问题五:“你的座右铭是什么?〞思路:1、座右铭能在一定程度上反映应聘者的性格、观念、心态,这是面试官问这个问题的主要原因。

我来说说华为机试

我来说说华为机试
输入一串字符,只包含“0-10”和“,”找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。
代码见:6.cpp
相信通过题2、题3,在找最大、最小数时,不论是数组还是字符类型都可以轻松应对了。
3)链表
题7:
一组人(7个),围成一圈,从某人开始数到第3个的人出列,再接着从下一个人开始数,依次输出出列的人。(报数:共n个人从1编号,设从第s个人报号,报到m出队,依次输出出队的人。)
代码见:20.cpp
题21:
写一个程序实现功能:将两个字符串合并为一个字符串并且输出,用指针实现。
代码见:21.cpp
题22:
给定一个字符串,实现一个函数,按下述方式输出字符串:如果此字符的下一个字符和此字符不一样,原样输出此字符,否则先输出此字符,再输出此字符连续出现的次数(次数不大于9)。
例如,字符串ABBCCCDEDFFF,输出的结果为AB2C3DEDF3。不用考虑溢出问题,不能使用任何I/O函数。
例如:task[] = {0, 30, 155, 1, 80, 300, 170, 40, 99} system_task[] = {0, 3, 1, 7, -1} user_task[] = {4, 8, 2, 6, -1}
代码见:3.cpp
题4:
输入一组身高在170到190之间(5个身高),比较身高差,选出身高差最小的两个身高;若身高差相同,选平均身高高的那两个身高;从小到大输出;
求两个长长整型的数据的和并输出。
代码见:9.cpp
题10:
在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。

华为认证考场十招技巧

华为认证考场十招技巧

华为认证考场⼗招技巧
华为认证考场⼗招技巧
有些考⽣的华为认证考试成绩往往会超过平时的⽔平,⽽有些同学则正好相反,这就是如何发挥考试技巧的问题。

我建议你不妨按以下⽅法试试看。

(1)注意临场⼼理调节。

当你进⼊考场后切莫慌张,可⽤“我能⾏”、“静⼼”、“认真”等⾃我暗⽰来稳定⾃⼰的情绪。

(2)把家庭、学校、社会的压⼒全丢掉,轻装上阵,尽⼒⽽为。

(3)拿到试卷后,不要急于动笔,⽤⼗分钟时间浏览试题,领略各题的'难易、分值,然后合理安排答题时间。

(4)答题前,要逐字逐句审清题意,明了要求。

答题⼒争简明扼要,答其所问。

卷前的“注意事项”要仔细过⽬。

(5)分值较⼩的题,如果⼀时做不出来,可先放⼀放,抢时间先做会做的题,然后再回头考虑本题。

(6)有些看起来较容易的题⽬,其中可能有难点,切忌疏忽⼤意。

(7)巧⽤图表法,碰到有些数学难题,可将已经数和未知数之间的关系列成图表,然后进⾏分析。

找出解题的⽅法。

(8)复查是考试中的重要⼀环,如果时间来不及,宁可把做完的题先复查⼀遍,⽽不做⽆把握的题。

(9)不要见别⼈交卷就着慌,草率收兵,要⼒争在规定时间内圆满的答完、检查完。

(10)考完⼀科后,精神要放松,不要参加考⽣之间的议论或互相对答案。

应抓紧时间清醒头脑,做好考下⼀科的准备。

华为机试题目总结(程序篇)

华为机试题目总结(程序篇)

华为机试题目总结(程序篇)自己写的,水平很挫,仅供参考目录1.语言识别问题2.销售网络问题(未完成)3.股票投资问题4.判断手机号码合法性5.元音字母复制6.验证身份证号7.选秀节目打分8.数组最大值放中间,其他依次放其左右(规律未找着,未完成)9.任务调度(解题关键,需要一个容器来承载下标跟值的一一对应关系,最好就是定义一个结构体)10.将某字符变成小写后的某个字符11.链表的逆序12.单词统计13.字符串进行转换,转换成相应的数字已知:yi er san si wu liu qi ba jiu 分别对应,对一段只含有这几种字符的字符串进行转换,转换成相应的数字14.一个数组中比平均数大的个数15.求一个数组中第一大和第二大数16.字符变成整数17.整数变字符18.判断素数问题19(1).约瑟夫环(循环列表)19(2).约瑟夫环(数学方法只能求出最后的胜利者的序号)19(3).约瑟夫环(容器实现)20.判断某个整数是回文。

即这样的,反过来还是21.判断一个字符串是不是回文22.求一个字符串中的最大回文子串,就是从n个字符开始检查是不是回文,知道m个字符符合回文,那么这个就是最大回文23.找出^n的数24.统计一个数二进制表达中的个数25.镜像反转二进制表达式,并输出十进制值26.连续字符统计27.判断一个字符串中()是否配对28.查找子字符串个数29(1).找出一个字符串中是否包含相同(包括连续的)的子字符串(要求子串长度大于等于)并输出出现频率最高的子字符串29(2)找出一个字符串中是否包含连续相同的子字符串,并输出出现频率最高的子字符串30.删除字符窜中字符数最少的字符31.关于数组的循环移位,左移为负,右移为正32.求一个二维数组每列的最小值33.两个字符串,求最长公共子串34.超大整数加法运算,大整数会用字符串或者数组来存,不过注意低位存字符前面几位,高位存后面,存到字符中应该存“”。

华为公司软件类上机考试说明(南京)

华为公司软件类上机考试说明(南京)

华为地区校园招聘软件类上机考试说明同学您好!欢迎您应聘华为公司。

软件类研发岗位(软件开发、云计算、操作系统开发、数据库开发)需要提前进行上机考试。

现将上机考试做如下说明。

一、题目类别本次上机考试题目设置C/C++、Java两个类别,根据个人情况选作一个类别。

二、题目数量每个考生有三道题,第一二道题必答,第三道题为附加题可以选作,附加题做出,成绩会计入总分。

三、考试时间安排1、从10月中旬安排分批上机考试2、每个考生上机考试时间为2小时四、上机考试步骤1、打开IE输入服务器的IP地址或者直接打开收藏夹中已经收藏好的地址;2、输入姓名和手机号,选择考试语言,提交登录:3、登录后会进入试题说明页面,考试阅读完试题要求后,在页面下方点击下载试题框架并解压到D盘。

如果是C/C++则用VC打开工程进行编程,只在func.cpp文件中进行函数编写,函数名已经定义好;如果是Java则用Eclips打开Java工程进行编程,只在SWTest.java文件中进行函数编写,函数名已经定义好。

注意,考生不要进行任何IO输入输出的处理(题目说明中已经有写了),否则会得0分。

4、编完代码并编译和调试通过后,点击试题页面下方的按钮,在弹出的窗口中,如果是C/C++则将test.exe和func.cpp拷贝到一个新建的名为test的目录中然后打包该目录上传,如果是Java则将工程仍然打包为SWTest.rar一次性上传(这个过程非常重要,否则会因无法自动判卷而得0分)。

上传之后页面会显示“提交成功”,然后关闭所有IE窗口并清空客户机中您所创建的所有内容后结束考试离开考场。

五、如何阅卷1、考生提交试卷后,我们在服务器后台执行系统阅卷程序,进行自动判卷,不进行人工阅卷。

2、系统设置了多个测试用例,根据用例执行的情况判断考生所上机考试的分数。

六、样题编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素的个数并返回。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大师兄教你如何过华为机试宝典1—内功心法大华为这个大数据时代土豪金海量式的招聘又要开始了近期听说大华为的校招机试马上就要开始了,由于华为软件岗位的招聘只有技术面跟机试是与技术有关的内容,所以机试的地位非常重要。

对于机试,除了长期积累的软件基本功以外,还有很多可以短期训练的东西,类似于考试之前的突击,可以迅速提高机试成绩,就像在我西电大杨老师考前最后一堂课一定要去,那个重点就是考点阿。

这篇机试葵花宝典的内容是针对华为软件类上机准备的,如果你认真看了本宝典,如果你是真正通过自己能力考上西电的话,想不过都难。

同样想拿高级题的同学,请移步/land/或者,刷上200道题,机试不想拿满分都难。

对于机试,首先应该调整好自己的心态,不要觉得写程序很难,机试题很难,也不要去考虑,万一机试考到自己不会的内容怎么办,要相信,机试题永远是考察每个人的基础,基础是不会考的很偏的,会有人恰好做过某个题而做出来那个题,但不会有人恰好没做过一个题而做不出来那个题。

机试之前,应该做的准备有:1、买一本《算法竞赛入门经典》,这本书不同于普通的算法或者编程语言的书籍,这本书既讲语言,又讲算法,由浅入深,讲的很好,能看完前几章并且把例题都做会,想通过机试就很简单了2、调整好心态,时刻告诉自己,哪些小错误是自己以前经常犯的,最好用笔记本记录下来,写每道题前再看一遍,如果遇到代码调不出来了,先想想自己是否犯过以前那些错误。

还有就是,看了题目以后,先仔细想清楚细节,在纸上写清楚自己需要用到的变量,以及代码的基本框架,不要急于动手去写代码3、不要惧怕任何一道看起来很难的题目,有不会的就去问身边会的人,让别人给自己讲清楚4、心中默念10遍C++跟C除了多了两个加号其实没有区别,会C就能上手C++5、大量的练习是必要且有效的6、看完这篇宝典,预过机试、必练此功。

在这里推荐一个帖子,是机试归来的学长写的,写的很不错,里面的例题在后面的攻略中也会提及, 就在好网上。

宝典二:常用招式1:机试常用变量类型C\C++常用的变量类型有很多种,想通过机试,掌握好其中的几种就可以,他们分别是int,double, string, char[]int 类型是最常用的整数类型,对于输入类型是整形的变量,使用int来进行定义和读入。

还有一种更大的整形变量是long long,在机试中一般不会涉及到考察,如果考虑到运算的过程中有可能超过int的大小,再考虑使用long long,int最大可以到达2^31级别,long long最大可以到达2^63。

PS:有时机试读入多个整数的时候会是这样的形式5,10中间有一个逗号,在这种情况下,其实读入也是很简单的,可以这么写:scanf(“%d%c%d”,&a,&b,&c);或者是:scanf(“%d”,&a);getchar();scanf(“%d”,&c);有的机试题会说:两个整数之间有若干个空格符或tab字符。

在这种情况下,读入的方式还是使用scanf(“%d%d”,&a,&b)这样,scanf函数或者cin函数都可以很好的吃掉除了数字字符以外的字符。

double类型是最常用的浮点数类型,当运算涉及到小数运算的时候,需要使用double来定义。

其中,特别需要注意的一点是,如果使用了如下语句:double x=a/b;在这里,a和b是int,那么x的值将是a和b整除后的结果,而不是想要的结果,想要得到期望的结果,须改成double x=(a+0.0)/b;在这里,将a加上一个浮点数,程序会在后台将它强制转换成一个double类型的数字,此时再除一个整数,就没有问题了string类型是遇到字符串类问题应该首选的变量,区别于字符数组char[],string类型是直接将字符数组封装了进去,定义string s相当于定义了一个大小特别长的字符数组。

使用string 的好处是,避免了使用char数组时定义数组长度过小导致越界,同时更加直观的将字符串看做了一个对象。

如果要定义一个string变量,首先得包含string的头文件以及使用C++中的标准命名空间,标准命名空间这个东西,只要记得写上就行,没有任何影响。

#include<iostream> //这一句是c++的头文件,c语言代码一样可以把它包含进来,只要将程序后缀名改成.cpp即可,其他都是一样的。

#include<string.h>using namespace std;在不同的环境下,可能会有不同的头文件包含了string的用法,可能的头文件有cstring,string。

在机试的环境中,一般使用string.h即可。

定义一个string和定义其他变量方式相同:string s;读入和输出string也只需要使用cin>>s;cout<<s;这是比c语言的字符数组要简单了很多的。

需要注意的是,string类型读入的时候与char数组的scanf读入一样,都是遇到空格符或者回车符就停止读入,当做一个完整字符串来处理,因此,使用string处理带空格的字符串是不明智的,其他情况下是都可以的。

string变量包含了很多强大的功能,如:[cpp]view plaincopyprint?1.s[i]; //这么写,返回的就是字符串s第i+1位的字符,返回的类型是char型,其中,s[0]是它的第一位,与字符串相同。

2.s.size(); //返回字符串的长度,返回的长度是l,则s从s[0]到s[l-1]表示的是其每一位的字符。

3.if (s1<s2) //两个string是可以方便的使用大小于符号以及等于号来比较大小的,比较的方式是,从左向右按位进行比较,每一位按照字典序来比较。

如”aaaa”<”abc”<”bcd”,但值得注意的一点是,比较的时候应用变量进行比较,即s1<s2这种,而不能用”aa”<”bb”这样,如果要比较他俩的大小,应这么写:4.s1="aa"; s2="bb";5.if (s1<s2)string类型还有很多强大的功能,但是对于机试来说,会使用以上三种功能就足够了。

char[50],char[100]这种字符数组与string类型很像,只不过他是C语言里面的用法,对于机试,只建议在输入带有空格字符的字符串时使用char数组,使用的方式是:gets(s);在这里,gets函数区别于scanf函数的是,gets函数会直接将一整行读进来,而不会遇到空格就停下来。

常见机试题类型初级题常见的类型无非就是字符串处理类的题目和数字处理类的题目,在这里归结如下:1:字符串处理类字符串所有大写转小写:1.for (int i=0;i<s.size();i++)2. if (s[i]>=’A’ && s[i]<=’Z’)3. s[i]=s[i]-’A’+’a’;//s[i]-’A’返回的是两个大写字母之间的差值,比如’C’与’A’的差值是2,这个差值是一个int 类型,也可以直接提取出来使用。

给这个差值再加上字母’a’,相当于给’a’再往后推移二位,变成字母’c’。

这种用法是字符串内最普遍的一种用法,小写转大写也是一样。

删除满足指定要求的字符后输出:在机试中,判定对错的方式是比较输出的结果,而非检查内部的结果,因此,“删除”对于机试来说,相当于“不输出”,也就是说,不需要调用s.erase()函数,只需要在遇到被删除的字符时,跳过,不输出即可。

1.for (int i=0;i<s.size();i++)2.{3. if (s[i]满足删除要求) 跳过;4. else 输出s[i];5.}倒转字符串:与删除字符串的思路类似,倒转一个字符串,其实就是倒着输出,只需要将循环反过来就可以。

1.for (int i=s.size()-1;i>=0;i--)字符串比较大小:如果比较的规则与字符串的比较规则相同,则直接使用s1>s2这种方式,如果规则不同,则用一重循环按位比较即可。

2、数字处理类数字处理类的题目,最常见的两种考察形式是整数拆分、进制转换和排序。

整数拆分是指将一个整数拆分开每一位,比如123拆分成1,2,3。

整数拆分的思路有两种,第一种是直接用字符串读入,然后把每一位用字符的形式提取出来:[cpp]view plaincopyprint?1.for (int i=0;i<s.size();i++)2.<span style="white-space:pre"> </span>num[i]=s[i]-'0';还有一种思路是不断去除以10,把余数提取出来,方法是:[cpp]view plaincopyprint?1.while (n!=0)2.{3.<span style="white-space:pre"> </span>num[i]=n%10;4.<span style="white-space:pre"> </span>n=n/10;5.<span style="white-space:pre"> </span>i++;6.}进制转换:进制转换又分为10进制转换成别的进制以及别的进制转换成10进制,进制转换其实特别简单,只需要记住如下代码:10进制转换成X进制[cpp]view plaincopyprint?1.while (n!=0)2.{3.<span style="white-space:pre"> </span>num[i]=n%x;4.<span style="white-space:pre"> </span>i++;5.<span style="white-space:pre"> </span>n=n/x;6.}X进制转换成10进制[cpp]view plaincopyprint?1.for (int i=0;i<=length;i++)2.{3.ans=ans*x+num[i];4.}其中,num[i]表示的是该x进制数的每一位,比如一个二进制数101,用这种转换方式去转换,ans的值从i=0到i=2处理后分别是1,2,5。

排序:排序这个东西,其实不需要学习冒泡啊、快排啊之类的算法,应对机试,C++中自带的sort函数就可以很好的解决,请看下面一段代码[cpp]view plaincopyprint?1.</pre><pre name="code" class="cpp">#include<iostream>2.#include<algorithm> //这个是包含sort函数的头文件ing namespace std;4.int arr[100],n;5.int cmp(int x,int y) //这个函数是sort函数比较两个元素优先级的函数,在这里计算出两个元素的优先级,然后返回即可。

相关文档
最新文档