话说比起吉比特的大题量,柠檬微趣真的是特别良心!!
120分钟只有3道编程题,让我一度以为自己一定能完成
然鹅,too young too simple!题不难,是我高看了自己(你不配)
好吧,废话不多说!我们先来看看柠檬微趣的题目叭!
第一题:寻找值最大的有序同余数对
假设a和b为俩整数,n为第三个整数,现在a 和 b 都除以n得到余数,若两者余数相同,则称a和b为同余数对,称 a + b 为同余数对的值。若此时a < b,则称a 、b 为有序同余数对。现在我们第一行输入所有被除数,第二行输入除数,请输出其中值最大的有序同余数对。
示例:
输入:
5 11 8 3 2
3
输出:
8 11
这道题其实挺简单的,但是我只做了30%的case通过率,我现在回顾整道题,发现其中有很多细小的条件需要注意,就像吃鱼一样,你不认真就会卡鱼骨头,我们来看看题目中的限定条件:
1.有序:输出的同余数对一定是a < b, 所以对于所有输入的被除数,我们依次选择每一对进行检查,若确定为同余数对,输出的时候要进行大小排序,将小值放前,大值放后输出(注意a != b),保证输出的有序性。
2.输入格式:输入是一行为被除数,一行为单独一个除数,所以得正确处理输入。
题目打完之后再一次感慨,这题真的是送分题,可惜考场上不在状态,完全没注意有序这一条件,白白失分。
2.单链表反转(ReverseList):这是非常经典且基础的一道数据结构题,节点类给你定义好了,现在让你写一个函数,以单链表的head指针作为输入参数,输出反转后单链表的head指针。题目要求不能直接更换节点的值,只能更换节点的next指针,这题就不讲解了。
3.第三题是我觉得遇到过最有意思的笔试题:
大意是:
现在让你设计一款游戏,里面包含了一些属性
人物属性为attack,defense,health。
敌人属性为other_attack,other_defense,other_health
还包含了一些技能,每个技能有特定的输入格式:
attack N times:对敌人施展N次攻击,每次攻击造成伤害为attack - other_defense。
if X op Y:判断语句,X 和 Y 可以是以上六种属性中任意一种,op可以是 > 或者 < ,当判断条件成立的时候,那么会紧接着执行下一个技能语句,否则跳过下一个技能语句直接执行后面的技能语句。
add N to X: N 可以是 百分比数 也可以是 整数,例如 add 30% to attack , 执行完技能后会给人物攻击增加30%的属性值。例如 add -20 to other_defense,使用完后对方防御下降20点属性值。X 可以是上述六种属性中的任意一项。
现在我们在游戏中创建了一个树桩,其属性值为生命 1000,攻击 300, 防御 200;输入包含了人物属性和每次攻击施展的技能个数,我们希望你能完善此程序并输出每次攻击后树桩的生命值是多少?
示例输入
300 300 300
3
add 30% to attack
add -20 to other_defense
attack 3 times
输出:
370
路漫漫其修远兮,我将上下而求索,希望以后能再接再厉,争取早日拿到offer,希望看此文章的你也能鼓起干劲哦!