最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)漢諾塔算法(已然忘記漢諾塔是啥)。

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

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

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

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

[2, 1, 0]

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

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

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

相關(guān)文章

  • Pygame?精準(zhǔn)檢測圖像碰撞的問題

    Pygame?精準(zhǔn)檢測圖像碰撞的問題

    這篇文章主要介紹了Pygame?精準(zhǔn)檢測圖像碰撞,在用Pygame寫游戲的時(shí)候,有人可能會遇到兩個(gè)Rect對象碰撞但是對象之間還有空間間隔的問題,這里,將教大家用一種方法精準(zhǔn)地檢測圖像碰撞,需要的朋友可以參考下
    2022-06-06
  • 解析目標(biāo)檢測之IoU

    解析目標(biāo)檢測之IoU

    Intersection over Union(IoU)是一種測量在特定數(shù)據(jù)集中檢測相應(yīng)物體準(zhǔn)確度的一個(gè)標(biāo)準(zhǔn)。IoU是一個(gè)簡單的測量標(biāo)準(zhǔn),只要是在輸出中得出一個(gè)預(yù)測范圍(bounding boxes)的任務(wù)都可以用IoU來進(jìn)行測量
    2021-06-06
  • 手把手教你實(shí)現(xiàn)Python重試超時(shí)裝飾器

    手把手教你實(shí)現(xiàn)Python重試超時(shí)裝飾器

    這篇文章主要為大家介紹了實(shí)現(xiàn)Python重試超時(shí)裝飾器教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2023-05-05
  • 分析Python編程時(shí)利用wxPython來支持多線程的方法

    分析Python編程時(shí)利用wxPython來支持多線程的方法

    這篇文章主要介紹了Python編程時(shí)利用wxPython來支持多線程的方法,本文主要以開發(fā)GUI程序時(shí)做線程通訊作為一個(gè)示例來講解,需要的朋友可以參考下
    2015-04-04
  • Python響應(yīng)對象text屬性亂碼解決方案

    Python響應(yīng)對象text屬性亂碼解決方案

    這篇文章主要介紹了Python響應(yīng)對象text屬性亂碼解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 通過Python中的CGI接口講解什么是WSGI

    通過Python中的CGI接口講解什么是WSGI

    這篇文章主要為大家通過Python中的CGI接口及應(yīng)用示例講解什么是WSGI,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • python讀取csv文件示例(python操作csv)

    python讀取csv文件示例(python操作csv)

    這篇文章主要介紹了python讀取csv文件示例,這個(gè)示例簡單說明了一下python操作csv的方法,需要的朋友可以參考下
    2014-03-03
  • python實(shí)現(xiàn)在sqlite動態(tài)創(chuàng)建表的方法

    python實(shí)現(xiàn)在sqlite動態(tài)創(chuàng)建表的方法

    這篇文章主要介紹了python實(shí)現(xiàn)在sqlite動態(tài)創(chuàng)建表的方法,涉及Python操作SQLite數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)表的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • python os模塊常用的29種方法使用詳解

    python os模塊常用的29種方法使用詳解

    這篇文章主要介紹了python os模塊常用的29種方法使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python pygame實(shí)現(xiàn)球球大作戰(zhàn)

    python pygame實(shí)現(xiàn)球球大作戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了Python pygame實(shí)現(xiàn)球球大作戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11

最新評論

平南县| 浪卡子县| 威远县| 常宁市| 二手房| 五莲县| 南丹县| 万宁市| 嘉荫县| 军事| 东乡县| 洱源县| 当雄县| 德格县| 黔南| 阳江市| 达拉特旗| 奇台县| 固始县| 江达县| 平陆县| 阜城县| 丰镇市| 襄城县| 刚察县| 邵武市| 明星| 应用必备| 娄底市| 紫阳县| 嘉峪关市| 富锦市| 留坝县| 肥西县| 佛山市| 白城市| 南涧| 贵港市| 天津市| 资溪县| 宣威市|