题目描述: 小明在玩一个游戏,游戏规则如下: 在游戏开始前,小明站在坐标轴原点处(坐标值为0)。 给定一组指令和一个幸运数,每个指令都是一个整数,小明按照指定的要求前进或者后退指定的步数。 前进代表朝坐标轴的正方向走,后退代表朝坐标轴的负方向走。 幸运数为一个整数,如果某个指令正好和幸运数相等,则小明行进步数加1。 例如: 幸运数为3,指令为[2,3,0,-5] 指令为2,表示前进2步; 指令为3,正好和幸运数相等,前进3+1=4步; 指令为0,表示原地不动,既不前进,也不后退。 指令为-5,表示后退5步; 请你计算小明在整个游戏过程中,小明所处的最大坐标值。 输入描述: 第一行输入1个数字,代表指令的总个数n(1<=n<=100) 第二行输入1个数字,代表幸运数m(—100<=m<=100) 第三行输入n个指令,每个指令值的取值范围为:—100<=指令值<=100。 输出描述: 输出在整个游戏过程中,小明所处的最大坐标值。 异常情况下输出:12345 输入: 2 1 -5 1 输出: 0
解题思路:
1、处理输入
2、判断指令:指令符合要求,且=幸运数,则指令+1
3、返回指令执行中出现的最大坐标值
代码部分
def find_max_position(n, m, commands):
if n <= 0 or n > 100 or m < -100 or m > 100 or any(cmd > 100 or cmd < -100 for cmd in commands):
return 12345
position = 0
max_pos = 0
for cmd in commands:
if cmd == m:
cmd += 1
position += cmd
if position > max_pos:
max_pos = position
return max_pos
n = int(input())
m = int(input())
commands = list(map(int, input().split()))
print(find_max_position(n, m, commands))
知识点:判断语句
结语:越简单的题目解法应该越多,请路过大神留下新的思路供本小白学习一下,打开思路