华为最新机试题三连发(含本人自己写的源码)

一.实现简易字符串压缩

算法:一个任意长度字符串,由字母a-z或者A-Z组成,将其中连续出现2次以上(含2

描述:

实现简易字符串压缩算法:一个长度最大为128的字符串,由字母a-z或者A-Z组成,将其中连续出现2次以上(含2次)的字母转换为字母和出现次数,以达到压缩目的。

运行时间限制:

无限制

内存限制:

无限制

输入:

输入字符串,最大长度128

输出:

输入字符串

样例输入:

AAAABBBB

样例输出:

A4B4

答案提示:

二.竞赛积分猜想

描述:

某公司举办了知识竞赛。题目的计分规则如下:

1.每位选手需要回答10个问题(其编号为110),越后面越有难度。答对的,当前得到的分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。

2.每位选手都有一个起步的分数为10分。

程序要求:

如果某获胜选手最终得分是X分,如果不让你看比赛过程,请推断出他(她)哪个题目答对了,哪个题目答错了吗?把答对的题目记为1,答错的记为0,则10个题目的回答情况可以用仅含有10的串来表示。例如:0010110011?就是一种可能的情况,10道题目的编号从左到右依次排列。

你的任务是算出满足该得分的所有可能情况,答案之间用|号分隔,并且答案需要进行排序,将答案转换为十进制后数字小的排在前面,即0010110011应该排在1010110011的前面。如果不存在满足该分数的情况,则输出100:0000000000

运行时间限制:

无限制

内存限制:

无限制

输入:

选手的得分,正整数。

输出:

满足输入得分的所有可能的情况,答案之间用|号分隔,并且答案需要进行排序,将答案转换为十进制后数字小的排在前面,即0010110011应该排在1010110011的前面。如果不存在满足该分数的情况,则输出100:0000000000

样例输入:

100

样例输出:

0010110011|0111010000|1011010000

答案提示:

三.Word Maze(单词迷宫)

Word?Maze?是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉。如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f

????但现在你的任务可没有这么简单,你现在处于一个迷宫Mazen×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物。

如下图,指定W为“SOLO”,则在地图中红色标注了单词“SOLO”。?

?

注意区分英文字母大小写,你只能上下左右行走。

运行时间限制:

无限制

内存限制:

无限制

输入:

输入第一行包含两个整数nm(0<n,?m<21)分别表示nm列的矩阵,第二行是长度不超过100的单词W,从第3行到底n+3行是只包含大小写英文字母的长度为m的字符串。

输出:

如果能在地图中连成给定的单词,则输出“YES”,否则输出“NO”。注意:每个字母只能用一次。

样例输入:

5 5

SOLO

CPUCY

EKLQH

CRSOL

EKLQO

PGRBC

样例输出:

YES

答案提示:

?



第三题因为没有图,我就根据自己的理解写了.....因为我想测试一下我的编码时间够不够达到华为的标准,所以这次注释写的不是很完善。大家凑合着看吧...三道题在一个CPP文件里。

因为代码过长,贴在博客里不方便查看,如果想下载代码,请连接 http://download.csdn.net/detail/ganze_12345/6335555

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值