本文实例讲述了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递归实现汉诺塔算法示例