| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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 |   
 
 
 
 |