华为2017.8月笔试题

最近参加了华为的笔试题,其中有三道编程题,一道是跟字符串有关的,另两道偏向于数学方面,一个是拆分数字,一个是进制转换,笔试时间为两个小时,最终做出了一道半。

题目如下(展示题目如有侵权与我联系,会删除):

题1
题目描述
请编写一个转换字符串的函数:将输入字符串中下标为偶数的字符连成一个新的字符串输出。
注意:
1)如果输入字符串的长度超过20, 则转换失败,返回”ERROR!”字符串。
2)输入字符串只能由0-9数字、小写a-z和大写A-Z组成,如果包含其它字符,则转换失败,返回”ERROR!”字符串。
输入描述:
函数原型:void ConvertStr (char *str,  char* output); 


输入:


输入str参数为一个ASCII字符串(C/C++中为0结尾的标准C字符串)。
输出描述:
输出:


若判断输入为合法的字符串,则输出处理后的字符串;


若输入不合法,则输出字符串”ERROR!”;


C/C++通过output参数输出结果,可以假定已经为output分配了足够存放结果的内存;


(请注意添加字符串结尾的0);


Java函数请直接通过返回值输出结果。
示例1
输入


cdefg22es
输出


ceg2s


题2
[编程|200分] 消除重复数字
时间限制:3秒
空间限制:32768K
题目描述
给定一个正整数,给出消除重复数字以后最大的整数
输入描述:
正整数,注意考虑长整数
输出描述:
消除重复数字以后的最大整数
示例1
输入


423234
输出


432


题3
[编程|300分] 2~62进制转换
时间限制:3秒
空间限制:32768K
题目描述
将一个处于Integer类型取值范围内的整数从指定源进制转换为指定目标进制; 可指定的进制值范围为[2,62]; 每个数字位的可取值范围为[0-9a-zA-Z]; 输出字符串的每一个都须为有效值;反例:"012"的百位字符即为无效值。 实现时无需考虑非法输入。
输入描述:
输入为:
源进制 目标进制 待转换的整数值


例子:8 16 12345670
输出描述:
整数转换为目标进制后得到的值
示例1
输入


8 16 12345670
输出


29cbb8


其中做出的代码就不贴出来了,第一题我的完成时间是45分钟,一次通过,第二题本来想着用字符串读入再存进数组进行判断标志以后再进行分类选取最大值,但是发现这样不好做,最后能得出分类但是做最大值的时候不方便。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值