本周六华为机试,成功归来,发布所有题目和解答,攒人品,驾校求过~~

我是3月23号考的,本来昨天就想写的,但是无奈今天要交作业,回来只能赶作业了。

先说下我的情况,3道题对了两道,最后一道题木有时间。主要是华为60分就过,做完第一道题之后,后面就做一做打打酱油,帮旁边的同学看看程序。反正就是,我功夫还没练到家,最后一道题当场没弄出来。刚花了点时间做出来,发现其实也不复杂,100来行代码就能搞定。话不多少,直接来题吧!

 

一、字符串旋转

题目简介(回忆版):

输入一串字符串(长度最大为100),可能包括小写字母、大写字母,数字、其他符号等等。要求将小写字母变成下一个字母(a—->b, b—->c),但是小写z变成小写A(这就是旋转的意思啦!),大写字母也变成大写字母的下一个字母(如A—>B,B—->C……..),但是大写Z变成大写A。大写字母变完还是大写字母,小写字母变完还是小写字母。数字和其他符号不变。

输入样例:abcABCz@123

输出样例:bcdBCDa@123

 

很简单啦,有木有?所以去机试,想过还是非常容易的啦!不多说了,直接给代码:

完整代码请见:http://www.anycodex.com/blog/?p=260

二、最长单词

题目简介(回忆版):

输入一串字符串(长度最长为1000),以空格作为分隔符,要求输出长度最长的单词。若出现多个最长长度的单词,则输出最后一个最长长度的单词。

样例输入:

Alin is a good man

样例输出:

man

题目解答:

1、求出输入字符串中单词的个数len

单词的个数 = 空格的个数 + 1

所以就可以通过计算空格的个数来球的单词的个数;

2、声明一个长度为len的int类型的数组,用于统计每个单词的长度;

3、求出int类型数组的最大值maxLength,并记录下此时输入字符串的位置strPos;

4、输出从strPoS-(maxLength-1)到strPos处的字符

怎么样?不复杂吧?一步一步写,肯定能写出来啦!OK!上代码吧!

完整代码请见: http://www.anycodex.com/blog/?p=260

三、CDkey的生成

题目简介:

某软件需要实现建议的CD-KEY算法,输入3个正整数,以空格隔开,根据这3个整数生成CD-KEY字符串,输出格式XXXX-XXXX-XXXX-XXYY,包括16个字符,以短划线分开,其中,CD-KEY最后两个YY是用于CD-KEY的自校验,确保CD-KEY本身是合法的。

CDKEY使用的字符表23456789ABCDEFGHJKLMNPQRSTUVWXYZ

(由于1和I,0和O不好区分,删除)

请实现CDKEY的生成算法,原理如下:

(1)输入的3个32bit的正整数,按顺序取每个整数的低16bit,假设为a,b,c串联生成一个48bit的环形,然后从低到高,每次去5个bit,并将其作为下标,从32字符表中取出相应字符,循环输出14个字符(提示:第一个输出的字符应该是c的低5bit生成)。

(2)上面输出14个字符即为CDKEY的从左至右的14个字符,将这14个字符按照ascii码方式全部相加,取低10bit,从低到高,查表生成两个校验位。

样例输入:

1 1 1

样例输出:

3224-2262-2A22-J2CR

题目解答:

我晕,题目好长,好烦啊!光是理解题目我就花了五分钟的时间。我把题目的意思写在纸上,大家辅助理解吧。


完整代码请见:http://www.anycodex.com/blog/?p=260


 说明:我是vs2012,华为里面是vs2005,环境不一样,程序也可能会有稍许不同。

转载请注明链接:http://www.anycodex.com/blog/?p=260

欢迎留言评论。求点赞!!!!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值