作家
登录

Python算法实战系列:栈

作者: 来源: 2017-05-26 14:04:49 阅读 我要评论

如图所示

出去的┞俘确线路如图中的红线所示

思路

  1. 用一个栈来记录老鼠大年夜人口到出口的路径
  2. 走到某点后,将该点左边压栈,并把该点值置为1,表示走过了;
  3. 大年夜邻近的四个点中可达到的点中随便率性拔取一个,走到该点;
  4. 如不雅在达到某点后邻近的4个点都不走,解释已经走入逝世胡同,此时退栈,退回一步测验测验其他点;
  5. 反复履行第二、三、四步调直到找到出口;

解决代码

  1. #!/use/bin/env python 
  2.  
  3. # _*_ coding:utf-8 _*_ 
  4.  
  5. def initMaze(): 
  6.  
  7.     ""
  8.  
  9.     :return: 初始化迷宫 
  10.  
  11.     ""
  12.  
  13.     maze = [[0] * 7 for _ in range(5 + 2)]  # 用列表解析创建一个7*7的二维数组,为了确保迷宫四周都是墙 
  14.  
  15.     walls = [  # 记录了墙的地位 
  16.  
  17.         (1, 3), 
  18.  
  19.         (2, 1), (2, 5), 
  20.  
  21.         (3, 3), (3, 4), 
  22.  
  23.         (4, 2),  # (4, 3),  # 如不雅把(4, 3)点也设置为墙,那么全部迷宫是走不出去的,所以会返回一个空列表 
  24.  
  25.         (5, 4) 
  26.  
  27.     ] 
  28.  
  29.     for i in range(7):  # 把迷宫的四周设置成墙 
  30.  
  31.         maze[i][0] = maze[i][-1] = 1 
  32.  
  33.         maze[0][i] = maze[-1][i] = 1 
  34.  
  35.     for i, j in walls:  # 把所有墙的点设置为1 
  36.  
  37.         maze[i][j] = 1 
  38.  
  39.     return maze 
  40.  
  41. ""
  42.  
  43. [1, 1, 1, 1, 1, 1, 1] 
  44.  
  45. [1, 0, 0, 1, 0, 0, 1] 
  46.  
  47. [1, 1, 0, 0, 0, 1, 1] 
  48.  
  49. [1, 0, 0, 1, 1, 0, 1] 
  50.  
  51. [1, 0, 1, 0, 0, 0, 1] 
  52.  
  53. [1, 0, 0, 0, 1, 0, 1] 
  54.  
  55. [1, 1, 1, 1, 1, 1, 1] 
  56.  
  57. ""

      推荐阅读

      “互联网+”让出租车更智慧

    走进淮北市运输治理处信息批示中间,一幅由6块液晶显示屏构成的监控屏幕映入眼帘,经由过程屏幕画面可以清楚地看到全市在运行出租车的及时地位和车内人员的音视频信息。批示中间以每周7日>>>详细阅读


    本文标题:Python算法实战系列:栈

    地址:http://www.17bianji.com/lsqh/35452.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)