Python递归实现汉诺塔算法示例

  

本文实例讲述了Python递归实现汉诺塔算法。分享给大家供大家参考,具体如下:

  

最近面试题,面试官让我5分钟实现汉诺塔算法(已然忘记汉诺塔是啥)。

  

痛定思痛,回来查了一下汉诺塔的题目和算法。题干与实现如下:

  

        # - * -编码:utf - 8 - *   #汉诺塔回溯递归实现   #假设参数中初始杆为一个,借助杆为c,阶段终止杆为b   #第一步,状态借助b移动到c   #第二步,移动到b   #第三步,c借助一个移动到b   类解决方案:   def河内(自我,n, a, b, c):   全球骊山   如果n比;0:   解决方案。河内(自我、n - 1 a、c、b)   b.append(骊山(n - 1))   a.remove(骊山(n - 1))   解决方案。河内(自我、n - 1 c, b, a)   所以=解决方案()   n=3   全球骊山   骊山=[x x xrange (n))   (x=x xrange (n))   B=[]   C=[]   所以。河内(A, B, C)打印B      之前      

运行结果:

        (2,1,0)      之前      

回溯递归,设计起来还是很有难度的(在没有背过这个题目的前提下)

  

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》,《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

  

希望本文所述对大家Python程序设计有所帮助。

Python递归实现汉诺塔算法示例