2015华为机试题整理

第一题 求最大公约数
输入一组正整数(数量小于20),输出其最大公约数。
输入:121 33 44 11 1111
输出:11

第二题 相同子串
 输入一个数字(最多15个),去掉连续次数大于等于三的数字,如果去掉后仍有连续次数大于等于三的,继续进行同样的处理,直到结果中没有出现连续次数大于等于三的数字为止。
如果最终全部消除完了 输出“none”
输入:1 1 1 1 2 2 2 1 3 3 3 3 1 1 1
输出:none 

第三题 单词计数
输入一段文章,输出最高频与次高频的单词(全部小写,逗号分隔)。文章中仅出现空格,逗号和句号这三种分隔符。
不考虑频率一致的情况。忽略大小写。
输入:I am a student.I come from China.I love China.
输出: i,china




第一题 输出大写字母
输入一个字符串,输出其中的大写字母。
输入:2,sdARSFGfg
输出:ARSFG




第二题 约瑟夫环
 N个人报数,数到3就出队,输出最后一个人是几号。
输入:整数N
输出:最后一个人的号码


第三题 下围棋
输入一个10*10的棋盘,0代表空,1代表黑子,2代表白子。输入落子的坐标和棋子的颜色。输出:具体应该就是围棋的规则,记不住了,总之就是错误输出一个大数,正确的话没有吃掉子就输出0,吃子的话输出吃掉的子的个数(具体忘了,大概就是整数代表黑子个数,负数代表白子个数)
输入:一个正确的残局(10*10)
一个落子(如4 3 1代表在坐标(4,3)上下一个黑子,测试貌似是最少下一步棋。也可能是几步棋,最多没说,应该就是分出胜负就结束了吧)
输出: 0或者正整数或者负整数或者一个大数


第一题:输入一个整数,把各个位上的数字加和,输出最后的那个和。
例如:
输入:1234
输出:10
(因为1+2+3+4=10)




第二题:输入五个国家的名字,英文大写表示,中间用空格隔开。将这些名字按照字典序进行排序,输出最后排序结果。
例如:
输入:CHINA  AUSTRALIA  GERMAN  JAPAN  ENGLAND
输出:
AUSTRALIA
CHINA
ENGLAND
GERMAN
JAPAN
(注:本人用了map函数,因此第一次提交只对部分数据,后来考虑到可能两个国家的名字一模一样,所以更改了程序,测试数据全部通过了)


第三题:输入一个字符串,长度大于0,小于等于256,只含有数字。输出其中出现频率最高的那个数字,若两个或多个数字出现频率都是最高的,只输出其中最小的那一个。要求输出为字符串,格式为“数字+逗号+个数”
例如:
输入:112223334
输出:2,3




第一题 求能被3整除的个数
输入一组正整数(数量小于20),用’,’隔开,输出其中能被3整除的个数。每行输入最多不超过1000字符
输入:12,3,7,9,16
输出:3
(注意:输入不一定以回车结束,一般做法都是先读取一行,再按逗号分隔来处理。)




第二题 Tom的生日礼物
     愚人节快到了,Tom想了个愚人的好办法--送礼物。嘿嘿,不要想得太好。这礼物可没那么简单。Tom为了愚人,准备了一堆盒子。其中有一个盒子里装了礼物,盒子里面可以再放零个或者多个盒子,假设放礼物的盒子里不再放其他盒子。用( )表示盒子,A表示礼物,Tom想让你帮他算出愚人指数,即最少需要拆多少个盒子才能拿到礼物。
输入:本题包含多组测试数据,请处理到文件结束。每组测试包含一个长度不大于1000,只包含‘(’和‘)’和‘A’三种字符的字符串,代表Tom设计的礼物透视图。你可以假设,每个透视图都是合法的。
输出:对于每组测试,请在一行里面输出愚人指数。
输入样例:((((A)()))())
          (A)
输出样例:4
          1 
(注意:如何读取多行直到文件结束。盒子透视图有可能是( ( ) ( ( ( )( A ) ) ) 输出为4.)


第三题 n个石子
一堆石子有n个,两人轮流取,先取者第一次可取任意多个,但不能取完,
以后每次取不能超过上次石子数的2倍。取完这胜。先取者负输出2,先取者胜输出1.
输入:一个整数n
输出: 2或者1
(注意:输出结果只有2或者1,考试不会做可以直接输出2或者1,提交哪个得分高选哪个。本人输出2得分60,输出1得分100,果断100到手了。^-^)


第一题:输入一个字符串,输出其中重复的字符(a~z或A~Z)
输入:AAABBCCCDe11  22e
输出:ABCe


第二题:整数换位,输入5个整数,首先最大的和最后一个换,然后最小的和第一个换
输入:4 5 3 2 1 
输出:1 4 3 2 5


第三题: 求n个字符串的最长子串




第一题 亮着电灯的盏数
一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。
有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。
注:电灯数和学生数一致。不能写笨拙的双重循环(优化过的是可以的),会运行超时。本题有运行时间限制(一说10000ms)。


输入 65535
输出 255




第二题 相同子串
 输入一个字符串,判断是否含有相同的子串(字串长度大于1),是输出1,否,输出0。
例如12312含有两个12,所以输出1;23456则没有相同子序列,输出0.


输入:12312
输出:1




第三题 整数相除
两个整数相除,将结果用字符串返回。如果是循环小数,将循环的位用括号括起来。
函数原型为 void div(const int a,const int b,char *str)


输入:1 3
输出:0.(3)


第一题 分苹果
M个相同苹果放到N个相同篮子里有多少种放法,允许有篮子不放。
1<=M<=10,1<=N<=10
例如5个苹果三个篮子,3,1,1  和1,1,3是同一种放法


输入 7 3
输出 8




第二题 算日期
输入一个日期,输出这是这一年的第几天。(题目中没有给出闰年的定义)


输入 20131231
输出 365




第三题 拼音翻译成阿拉伯数字
输入一串拼音,输出它代表的阿拉伯数字(Ling,Yi,Er,San,Si,Wu,Liu,Qi,Ba,Jiu),数字不会超过十万
为了处理方便,输入一定是数字带单位的,例如10会是YiShi,而不是一个单独的Shi.


输入 JiuWanJiuQianJiuBaiJiuShiJiu
输出 99999


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值