|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一只魈咸鱼 于 2021-9-2 18:26 编辑
请问下面程序错在哪了呢,为什么bad函数里面明明pos[y]>max_y了它却不比较呢?
里面那个注释写错了,我程序输入的是:
0 0
0 1
终点坐标是1,1
源代码“:
#用户输入m行n列字符串,不存在处为-1,存在处为0(非终点)或1(终点)
#创建递归函数
route_dict = {}
move_lst = [(0,1),(0,-1),(1,0),(-1,0)]
def bad(pos):
print(pos[1],max_y)
if pos[0]<0 or pos[0]>max_x:
return True
if pos[1]<0 or pos[0]>max_y:
print('hi')
return True
if f'{pos[0]},{pos[1]}' in route_dict:
return True
def traceback_fn(start):
global route_dict
for move in move_lst:
if bad(start):
continue
next_start = start[0]+move[0],start[1]+move[1]
print(next_start)
if rows[next_start[0]][next_start[0]] == '1':
return True
if traceback_fn(next_start):
route_dict[f'{start[0]},{start[1]}']='6'
return True
return False
rows = []
pos_dict = {}
max_y = -1
while True:
j = input()
if j:
row = j.split()
rows.append(row)
max_y+=1
else:
break
max_x = len(rows[0])-1
'''
#pos_dict记录各坐标的状态
for y in range(max_y):
for x in range(max_x):
pos_dict[f'{x},{y}'] = rows[y][x]
'''
traceback_fn((0,0))
print(route_dict)
还有一个小问题,dict.items返回的是什么类型呢?网上查是列表,但是用type显示的是dict_items |
|