欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python遞歸實(shí)現(xiàn)漢諾塔算法示例

 更新時(shí)間:2018年03月19日 09:15:16   作者:kuqs(奇小東)  
這篇文章主要介紹了Python遞歸實(shí)現(xiàn)漢諾塔算法,結(jié)合實(shí)例形式分析了漢諾塔算法的原理、實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python遞歸實(shí)現(xiàn)漢諾塔算法。分享給大家供大家參考,具體如下:

最近面試題,面試官讓我5分鐘實(shí)現(xiàn)漢諾塔算法(已然忘記漢諾塔是啥)。

痛定思痛,回來(lái)查了一下漢諾塔的題目和算法。題干與實(shí)現(xiàn)如下:

A基座有64個(gè)盤子,大在下小在上,每次移動(dòng)一個(gè)盤子,每次都需要大在下小在上,全部移動(dòng)到B基座,C基座為輔助基座。

# -*- coding:utf-8 -*-
# 漢諾塔回溯遞歸實(shí)現(xiàn)
# 假設(shè)參數(shù)中初始桿為a,借助桿為c,階段終止桿為b
# 第一步,a狀態(tài)借助b移動(dòng)到c
# 第二步,a移動(dòng)到b
# 第三步,c借助a移動(dòng)到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

運(yùn)行結(jié)果:

[2, 1, 0]

回溯遞歸,設(shè)計(jì)起來(lái)還是很有難度的(在沒有背過(guò)這個(gè)題目的前提下)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python Thread虛假喚醒概念與防范詳解

    Python Thread虛假喚醒概念與防范詳解

    這篇文章主要介紹了Python Thread虛假喚醒概念與防范,虛假喚醒是一種現(xiàn)象,它只會(huì)出現(xiàn)在多線程環(huán)境中,指的是在多線程環(huán)境下,多個(gè)線程等待在同一個(gè)條件上,等到條件滿足時(shí),所有等待的線程都被喚醒,但由于多個(gè)線程執(zhí)行的順序不同
    2023-02-02
  • python實(shí)現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對(duì)全部變成小寫

    python實(shí)現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對(duì)全部變成小寫

    今天小編就為大家分享一篇python實(shí)現(xiàn)創(chuàng)建新列表和新字典,并使元素及鍵值對(duì)全部變成小寫,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python實(shí)現(xiàn)MD5進(jìn)行文件去重的示例代碼

    python實(shí)現(xiàn)MD5進(jìn)行文件去重的示例代碼

    工作中偶爾會(huì)收到一大堆文件,名稱各不相同,分析文件的時(shí)候發(fā)現(xiàn)有不少重復(fù)的文件,導(dǎo)致工作效率低下,那么,這里就寫了一個(gè)python腳本實(shí)現(xiàn)文件去重功能,感興趣的就一起來(lái)了解一下
    2021-07-07
  • Pytorch使用PIL和Numpy將單張圖片轉(zhuǎn)為Pytorch張量方式

    Pytorch使用PIL和Numpy將單張圖片轉(zhuǎn)為Pytorch張量方式

    這篇文章主要介紹了Pytorch使用PIL和Numpy將單張圖片轉(zhuǎn)為Pytorch張量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python中實(shí)現(xiàn)常量(Const)功能

    Python中實(shí)現(xiàn)常量(Const)功能

    這篇文章主要介紹了Python中實(shí)現(xiàn)常量(Const)功能,python語(yǔ)言本身沒有提供const,本文使用一個(gè)類來(lái)實(shí)現(xiàn)常量定義功能,并介紹了使用方法,需要的朋友可以參考下
    2015-01-01
  • Python編程技巧連接列表的八種操作方法

    Python編程技巧連接列表的八種操作方法

    這篇文章主要為大家介紹了Python編程技巧之連接列表的八種操作方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Pandas導(dǎo)入導(dǎo)出excel、csv、txt文件教程

    Pandas導(dǎo)入導(dǎo)出excel、csv、txt文件教程

    Pandas?是一個(gè)強(qiáng)大的數(shù)據(jù)分析和處理庫(kù),可以用來(lái)讀取和處理多種數(shù)據(jù)格式,本文主要介紹了Pandas導(dǎo)入導(dǎo)出excel、csv、txt文件教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 利用python實(shí)現(xiàn)短信和電話提醒功能的例子

    利用python實(shí)現(xiàn)短信和電話提醒功能的例子

    今天小編就為大家分享一篇利用python實(shí)現(xiàn)短信和電話提醒功能的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 人工智能Text Generation文本生成原理示例詳解

    人工智能Text Generation文本生成原理示例詳解

    這篇文章主要為大家介紹了Text Generation文本生成原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • python探索之BaseHTTPServer-實(shí)現(xiàn)Web服務(wù)器介紹

    python探索之BaseHTTPServer-實(shí)現(xiàn)Web服務(wù)器介紹

    這篇文章主要介紹了python探索之BaseHTTPServer-實(shí)現(xiàn)Web服務(wù)器介紹,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10

最新評(píng)論