def print_array_with_markers(arr, p_value): out = "[" for i in range(len(arr)): if p_value == i: out += '«' out += str(arr[i]) + '»' + ", " else: out += str(arr[i]) + ", " out = out[0:len(out) - 2] out += "]" return out def jump_game(nums): print("\tSetting the last element in the array as our initial target:") target_num_index = len(nums) - 1 print("\t\t", print_array_with_markers(nums, target_num_index), sep="") print("\t\tTarget index: ", target_num_index, sep="") print("\n\tIdentifying the jumps we can take from each index:") for i in range(len(nums) - 2, -1, -1): print("\t"*2, "Loop iteration: ", len(nums) - i - 1, sep="") print("\t"*2, print_array_with_markers(nums, i), sep="") print("\t"*2, "Index: ", i, ", Number: ", nums[i], sep="") print("\t"*2, "We can make ", nums[i], " jump(s) from this point, up to index ", i + nums[i], ".\n", sep="") def main(): nums = [ [3, 2, 2, 0, 1, 4], [2, 3, 1, 1, 9], [3, 2, 1, 0, 4], [0], [1], [4, 3, 2, 1, 0], [1, 1, 1, 1, 1], [4, 0, 0, 0, 1], [3, 3, 3, 3, 3], [1, 2, 3, 4, 5, 6, 7] ] for i in range(len(nums)): print(i + 1, ".\tInput array: ", nums[i], sep="") print("\tCan we reach the very last index? ", "Yes" if jump_game(nums[i]) else "No", sep="") print("-" * 100) if __name__ == '__main__': main()