Python數(shù)據(jù)結構與算法之使用隊列解決小貓釣魚問題
本文實例講述了Python數(shù)據(jù)結構與算法之使用隊列解決小貓釣魚問題。分享給大家供大家參考,具體如下:
按照《啊哈》里的思路實現(xiàn)這道題目,但是和結果不一樣,我自己用一幅牌試了一下,發(fā)現(xiàn)是我的結果像一點,可能我理解的有偏差。
# 小貓釣魚
# 計算桌上每種牌的數(shù)量
# 使用defaultdict類,并設置默認類型為int型,即默認值為0
# cardcounts = defaultdict(int)
# 不過deque有對應的方法
def henhenhaahaa():
from collections import deque
hen = deque() # hen的手牌
haa = deque() # haa的手牌
table = deque() # 桌上的牌
# 手扎初始化
for card in [2,4,1,2,5,6]:
hen.append(card)
for card in [3,1,3,5,6,4]:
haa.append(card)
# 當兩個人的手牌都不為零食,游戲繼續(xù)
# 如果某人打出的牌與桌上的某張牌相同
# 即可將兩張牌以及中間的所有牌以此取走
# 由于桌上同樣的牌不可能超過兩張
# 只要計算目標牌的數(shù)量,以此取回即可
# 刷新桌上的牌(打出牌,取牌)
def refreshtable(person, card):
table.append(card)
if table.count(card)>=2:
while table.count(card)>0:
person.append(table.pop())
while len(hen)!=0 and len(haa)!=0:
# print "tab:",list(table)
i = hen.popleft() # hen先出牌
# print "hen put",i
refreshtable(hen, i) # hen動作
# print "hen:",list(hen)
# print "tab:",list(table)
j = haa.popleft() # haa后出牌
# print "haa put",j
refreshtable(haa, j) # haa動作
# print "haa:",list(haa)
# print "tab:",list(table)
# print "next turn"
if len(hen)!=0:
print "hen win"
print "hen:",list(hen)
else:
print "haa win"
print "haa:",list(haa)
print "ontables"
print "tab:",list(table)
if __name__=="__main__":
print "腳本之家測試結果:"
henhenhaahaa()
# 我自己手動用牌模擬的結果根本就和書上不一樣
# 我覺得我自己的答案沒啥問題
# 單步模擬的結果也是一樣的
運行結果:

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python基于mysql實現(xiàn)學生管理系統(tǒng)
這篇文章主要為大家詳細介紹了Python基于mysql實現(xiàn)學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
python爬蟲爬取bilibili網(wǎng)頁基本內容
這篇文章主要介紹了python爬蟲爬取bilibili網(wǎng)頁基本內容,用爬蟲爬取bilibili網(wǎng)站排行榜游戲類的所有名稱及鏈接,下面來看看具體的實現(xiàn)過程吧,需要的朋友可以參考一下2022-01-01
Python 實現(xiàn)把列表中的偶數(shù)變成他的平方
這篇文章主要介紹了Python 實現(xiàn)把列表中的偶數(shù)變成他的平方,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
pytest自動化測試數(shù)據(jù)驅動yaml/excel/csv/json
這篇文章主要為大家介紹了pytest自動化測試數(shù)據(jù)驅動yaml/excel/csv/json的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Python+OpenCV實戰(zhàn)之實現(xiàn)文檔掃描
這篇文章主要為大家詳細介紹了Python+Opencv如何實現(xiàn)文檔掃描的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2022-09-09
Python數(shù)據(jù)結構與算法之鏈表定義與用法實例詳解【單鏈表、循環(huán)鏈表】
這篇文章主要介紹了Python數(shù)據(jù)結構與算法之鏈表定義與用法,結合具體實例形式較為詳細的分析了單鏈表、循環(huán)鏈表等的定義、使用方法與相關注意事項,需要的朋友可以參考下2017-09-09
PyTorch?可視化工具TensorBoard和Visdom
這篇文章主要介紹了PyTorch?可視化工具TensorBoard和Visdom,TensorBoard?一般都是作為?TensorFlow?的可視化工具,與?TensorFlow?深度集成,它能夠展現(xiàn)?TensorFlow?的網(wǎng)絡計算圖,繪制圖像生成的定量指標圖以及附加數(shù)據(jù)等,下面來看文章得具體內容介紹吧2022-01-01

