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

 更新时间:2018年03月19日 09:15:16   作者:kuqs(奇小东)  
这篇文章主要介绍了Python递归实现汉诺塔算法,结合实例形式分析了汉诺塔算法的原理、实现步骤与相关操作技巧,需要的朋友可以参考下

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

最近面试题,面试官让我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

运行结果:

[2, 1, 0]

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

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

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

相关文章

  • Django中的“惰性翻译”方法的相关使用

    Django中的“惰性翻译”方法的相关使用

    这篇文章主要介绍了Django中的“惰性翻译”方法的相关使用,Django是最具人气的Python web开发框架,需要的朋友可以参考下
    2015-07-07
  • Python 数字转化成列表详情

    Python 数字转化成列表详情

    这篇文章主要介绍了Python 数字转化成列表,主要以代码实现了将输入的数字转化成一个列表,输入数字中的每一位按照从左到右的顺序成为列表中的一项。,需要的朋友可以参考下
    2021-11-11
  • Python学习笔记基本数据结构之序列类型list tuple range用法分析

    Python学习笔记基本数据结构之序列类型list tuple range用法分析

    这篇文章主要介绍了Python学习笔记基本数据结构之序列类型list tuple range用法,结合具体实例形式分析了Python序列类型list tuple range基本概念、定义与使用技巧,需要的朋友可以参考下
    2019-06-06
  • pytorch的梯度计算以及backward方法详解

    pytorch的梯度计算以及backward方法详解

    今天小编就为大家分享一篇pytorch的梯度计算以及backward方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python实现博客文章爬虫示例

    python实现博客文章爬虫示例

    简单的博客文章爬虫,比较通用,因为大部分的网站结构都差不多,需要的朋友可以参考下
    2014-02-02
  • Python抖音快手代码舞(字符舞)的实现方法

    Python抖音快手代码舞(字符舞)的实现方法

    这篇文章主要给大家介绍了关于Python抖音快手代码舞的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • python中telnetlib模块的使用方式

    python中telnetlib模块的使用方式

    这篇文章主要介绍了python中telnetlib模块的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • python3中确保枚举值代码分析

    python3中确保枚举值代码分析

    在本篇文章里小编给大家整理的是一篇关于python3中确保枚举值代码分析内容,有兴趣的朋友们可以学习下。
    2020-12-12
  • Windows 7下Python Web环境搭建图文教程

    Windows 7下Python Web环境搭建图文教程

    这篇文章主要为大家详细介绍了Windows 7下Python Web环境搭建图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python3.遍历某文件夹提取特定文件名的实例

    Python3.遍历某文件夹提取特定文件名的实例

    下面小编就为大家分享一篇Python3.遍历某文件夹提取特定文件名的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04

最新评论