Python递归实现汉诺塔算法示例-创新互联

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

峰峰矿网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联公司成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

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

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

A基座有64个盘子,大在下小在上,每次移动一个盘子,每次都需要大在下小在上,全部移动到B基座,C基座为辅助基座。

# -*- coding:utf-8 -*-
# 汉诺塔回溯递归实现
# 假设参数中初始杆为a,借助杆为c,阶段终止杆为b
# 第一步,a状态借助b移动到c
# 第二步,a移动到b
# 第三步,c借助a移动到b
class Solution:
  def hanoi(self, n, a, b, c):
    global lishan
    if n > 0:
      Solution.hanoi(self, n-1, a, c, b)
      b.append(lishan[n-1])
      a.remove(lishan[n-1])
      Solution.hanoi(self, n-1, c, b, a)
so = Solution()
n = 3
global lishan
lishan = [x for x in xrange(n)]
A = [x for x in xrange(n)]
B = []
C = []
so.hanoi(3, A, B, C)print B


当前标题:Python递归实现汉诺塔算法示例-创新互联
当前网址:http://hxwzsj.com/article/deeegp.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 重庆网站设计 高端网站建设 成都品牌网站建设 成都网站建设 温江网站设计 企业网站设计 成都网站建设公司 重庆电商网站建设 成都营销网站制作 网站制作 网站建设方案 成都网站设计 成都模版网站建设 成都网站设计 重庆网站制作 响应式网站设计方案 成都网站建设 成都商城网站制作 成都网站制作 成都网站建设公司 成都网站设计公司 品牌网站建设