您的位置:首页 > 其它

华为OJ之中级篇Ⅱ

2015-06-11 21:22 176 查看

1.整型字符串排序

题目描述:
给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数

排序要求:按照每个正整数的后三位数字组成的整数进行从小到大排序

1)如果不足三位,则按照实际位数组成的整数进行比较

2)如果相等,则按照输入字符串中的原始顺序排序

说明(以下内容考生无须检查,调用者保证):

1) 字符串以’\0’结尾,仅包含数字、空格

2) 字符串内正整数之间以单个空格分隔,字符串首尾没有空格

3) 正整数格式为十进制,大小:1~1000000,正整数的数字非零开始

示例:

如字符串内容

1223 22 3232 2016

按照规定排序后

2016 22 1223 3232

查询排序后的第3个数是

1223

答案点这里

2.字符转换Univesity

题目描述:

字符替换,按照替换规则,将输入的字符串做转换;其它字符不作处理。

详细描述:

题目背景

字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

E C F A J K L B D G H I V W Z Y M N O P Q R S T U X

a b c d e f g h i j k l m n o p q r s t u v w x y z

e r w q t y g h b n u i o p s j k d l f a z x c v m

答案点这里

3.字符串分割

题目描述:
连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,

长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

例如:

输入:abc

12345789

输出:abc00000

12345678

90000000

接口函数设计如下:

/*****************************************************************************

功能:存储输入的字符创

输入:字符串

输出:无

返回:0表示成功,其它返回-1

******************************************************************************/

int AddString(char *strValue);

/****************************************************************************

功能:获取补位后的二维数组的长度

输入:无

输出:无

返回:二维数组长度

*****************************************************************************/

int GetLength();

/*****************************************************************************

功能:将补位后的二维数组,与输入的二维数组做比较

输入:strInput:输入二维数组,iLen:输入的二维数组的长度

输出:无

返回:若相等,返回0;不相等,返回-1.其它:-1;

******************************************************************************/

int ArrCmp(char strInput[][9],int iLen);

答案点这里

4.圆桌游戏

题目描述:
N个人围坐在一个圆桌上,顺时针报数,报数的初始值为第一个人设置。当有成员报出的数字为7的倍数或数字中包含7,则该人退出圆桌,而后由下一个人开始重新继续该游戏。

实现以下接口:

1、设定输入原始的圆桌游戏的人数。以最先开始报数的人编号为1,顺时针排序。

2、设定第一个人的初始值,获取按照规则退出圆桌的人的编号。

3、结束游戏。

样例:

比如初始化为4人的游戏:第1轮初始值为1,退出为3;第2轮初始值为4,退出为4号;第三轮初始值为16,退出为2号;第四轮初始值为6,退出为1号;

答案点这里

5.渊子赛马

题目描述:
赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都。 赛马是当时最受齐国贵族欢迎的娱乐项目。上至国王,下到大臣,常常以赛马取乐,并以重金赌输赢。田忌多次与国王及其他大臣赌输赢,屡赌屡输。一天他赛马又输了,回家后闷闷不乐。孙膑安慰他说:“下次有机会带我到马场看看,也许我能帮你。” 孙膑仔细观察后发现,田忌的马和其他人的马相差并不远,只是策略运用不当,以致失败。 比赛前田忌按照孙膑的主意,用上等马鞍将下等马装饰起来,冒充上等马,与齐王的上等马比赛。第二场比赛,还是按照孙膑的安排,田忌用自己的上等马与国王的中等马比赛,在一片喝彩中,只见田忌的马竟然冲到齐王的马前面,赢了第二场。关键的第三场,田忌的中等马和国王的下等马比赛,田忌的马又一次冲到国王的马前面,结果二比一,田忌赢了国王。
就是这么简单,现在渊子也来赛一赛马。假设每匹马都有恒定的速度,所以速度大的马一定比速度小的马先到终点(没有意外!!)。不允许出现平局。最后谁赢的场数多于一半(不包括一半),谁就是赢家(可能没有赢家)。渊子有N(1≤N≤1000)匹马参加比赛。对手的马的数量与渊子马的数量一样,并且知道所有的马的速度。聪明的你来预测一下这场世纪之战的结果,看看渊子能否赢得比赛。

输入

输入有多组测试数据。 每组测试数据包括3行: 第一行输入N(1≤N≤1000)。表示马的数量。 第二行有N个整型数字,即渊子的N匹马的速度。 第三行有N个整型数字,即对手的N匹马的速度。 当N为0时退出。

输出

若通过聪明的你精心安排,如果渊子能赢得比赛,那么输出“YES”。 否则输出“NO”。

样例输入

5

2 3 3 4 5

1 2 3 4 5

4

2 2 1 2

2 2 3 1

0样例输出

YES

NO接口说明

原型:char * IsYuanziWin(unsigned int num, unsigned int * speed_yz, unsigned int * speed_op)

功能:判断yuanzi 的马是否会赢?yuanzi 的马赢了,返回 YES. 否则返回 NO

输入参数:

unsigned int num: 赛马的数量; (1<= num <=1000)

unsigned int * speed_yz: yuanzi 的马的速度;

unsigned int * speed_op: 对手的马的速度;

输出参数:



返回值:

char * 型 的字符串,yuanzi 的马赢了,返回 YES. 否则返回 NO;

答案点这里

6.英文金曲大赛

题目描述:
我们在“渊子数”的题目中已经了解了渊子是个什么样的人了,他在大一的时候参加过工商学院的“英语聚乐部”。告诉你个秘密,这个俱乐部是个好地方,不但活动精彩而且有MM。 这不,英语俱乐部举办了一个叫做“英文金曲大赛”的节目。这个节目有好多人参加,这不,成绩出来了,渊子当是很勇敢,自告奋勇接下了算出大家的总得分的任务。 当时有7个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去掉一个最低分,再算出平均分。结果精确到小数点后两位。

样例输入

10 10 10 10 10 10 9 xiaoyuanwang

0 0 0 0 0 0 0 beast样例输出

xiaoyuanwang 10.00\nbeast 0.00接口说明

函数原型:

void GetResult(char* pInput[], int Num, char* pResult);

输入参数(指针指向的内存区域保证有效): char* pInputString:字符串数组,是输入的成绩和姓名。分数是0-10的整数,名字的长度不超过30个字符 int Num:整数,参赛选手的数量,2 <= Num <= 26。输出参数(指针指向的内存区域保证有效): char* pResult:一块buffer,输出所有参赛者的姓名和平均分(保留2位小数)。格式要求如下: 1、姓名在前,平均分在后,中间由一个空格隔开; 2、每行参赛者的成绩占一行(最后一个参赛者成绩之后不要换行符); 3、输出成绩按输入顺序排序。
返回值: void

答案点这里

7.一元多项式化简

题目描述:
背景:

编程实现如下功能:对输入的一元多项式,进行同类项合并,并按指数降序排序,输出处理后的一元多项式。

说明:

l 多项式由若干个单项式组成,单项式之间为加、减(+,-)关系。

l 单项式指数字与字母幂的乘积构成的代数式。对一元多项式,字母只有一种。

l 同类项合并指将多项式中指数相同的单项式,系数经过加减求和,合并为一个单项式。按指数降序指多项式中,单项式按指数从大到小顺序相连。

格式说明

一元多项式输入输出时以字符串形式表示,格式如下

l单项式之间用单个加减运算符相连,运算符:+,-

2单项式由系数、字母、指数标识符、指数依次直接相连组成,各部分均不能省略。

系数:只由若干0到9数字字符组成(系数不等于0,且不以0开头)

字母:X

指数标识符:^

指数:只由若干0到9数字字符组成(指数可等于0,不等于0时不以0开头)

3其他约定

输入不为空串,输出若为0则以空串表示

字符串中除以上字符,不包含空格等其他字符,字符串尾部以’\0’结束

多项式中第一个单项式前加运算时省略+符号,减运算时有-符号

注意:输入多项式符合上述格式,无需检查;输出多项式格式由考生程序保证
规格

输入多项式满足如下规格,考生程序无需检查:

–0<单项式系数<=1000<>

–0<=单项式指数<=3000<>

–单项式个数不限制,但同类项合并处理后,单项式的系数小于65535。

示例

例一

输入:

"7X^4-5X^6+3X^3"

输出:

"-5X^6+7X^4+3X^3"

例二

输入:

"-7X^4+5X^6-3X^3+3X^3+1X^0"

输出:

"5X^6-7X^4+1X^0"

答案点这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: