以下是一个解决“安全登山者-任务”问题的代码示例:
def is_safe_climber(heights):
for i in range(len(heights)-1):
if heights[i] >= heights[i+1]:
return False
return True
def safe_climber_missions(heights):
missions = []
start = 0
for i in range(1, len(heights)):
if heights[i] <= heights[i-1]:
if i - start > 1:
missions.append((start, i-1))
start = i
if start != len(heights)-1:
missions.append((start, len(heights)-1))
return missions
heights = [3, 4, 2, 5, 1, 6, 7, 8, 9, 10]
if is_safe_climber(heights):
missions = safe_climber_missions(heights)
print("安全登山者已完成以下任务:")
for mission in missions:
print("从{}到{}".format(mission[0], mission[1]))
else:
print("该登山者不是安全登山者")
在上面的代码中,is_safe_climber
函数用于检查给定的登山者是否是安全登山者。它通过遍历登山者的高度列表,检查是否存在任何高度下降的情况。如果有高度下降的情况,那么该登山者就不是安全登山者,函数返回False
。否则,返回True
。
safe_climber_missions
函数用于找到安全登山者完成的任务。它遍历登山者的高度列表,当发现任何高度下降的情况时,就将任务的起始索引和结束索引添加到任务列表中。最后,如果存在最后一个任务未添加到任务列表中的情况,那么将其添加到任务列表中。
最后,我们使用给定的高度列表进行测试。如果登山者是安全登山者,我们将打印出完成的任务列表。否则,我们将打印出该登山者不是安全登山者的消息。
输出示例:
安全登山者已完成以下任务:
从1到3
从5到9