思科9.7笔试编程题

本菜狗难得做出来的题。
就遍历一次数组前n-1个元素(i=[0:n-2]),维护一个target的最大值max_num,target代表第当前元素最远能跳到哪个位置。
当遍历时碰到0的时候,就判断max_num是否大于i,如果大于i说明能跳过,小于等于i的话就说明无法跳过。
in_list = list(map(int, input()[1:-1].split(',')))
if len(in_list) == 1:
    print('true')
elif in_list[0] == 0:
        print('false')
else:
    # index_0 = []
    max_num = 0
    for i in range(len(in_list) - 1): 
        target = in_list[i] + i  # 目标点
        if target >= (len(in_list) - 1):  # 可以直接到终点
            print('true')
            break

        if in_list[i] == 0:
            # index_0.append(i)
            if i >= max_num:  # 无法跳过0
                print('false')
                break
            else:  # 可以跳过0
                continue
        elif target > max_num:
            max_num = target
    else:
        print('true')


#笔试题目##思科#
全部评论

相关推荐

牛客585965526号:solidworks。。。拼错了
点赞 评论 收藏
分享
bgC9本,屡屡被挂,理科专业也不是天坑,也有两段对口实习
掩卷思:看运气佬,别气馁,等十月鸽offer应该还有很多机会
点赞 评论 收藏
分享
点赞 3 评论
分享
牛客网
牛客企业服务