本文实例讲述了Python数据结构与算法之使用队列解决小猫钓鱼问题。分享给大家供大家参考,具体如下:

按照《啊哈》里的思路实现这道题目,但是和结果不一样,我自己用一幅牌试了一下,发现是我的结果像一点,可能我理解的有偏差。

# 小猫钓鱼

# 计算桌上每种牌的数量

# 使用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)

# 当两个人的手牌都不为零食,游戏继续

# 如果某人打出的牌与桌上的某张牌相同

# 即可将两张牌以及中间的所有牌以此取走

# 由于桌上同样的牌不可能超过两张

# 只要计算目标牌的数量,以此取回即可

# 刷新桌上的牌(打出牌,取牌)

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数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

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

本文标题: Python数据结构与算法之使用队列解决小猫钓鱼问题

本文地址: http://www.cppcns.com/jiaoben/python/214494.html

python 熊猫钓鱼_Python数据结构与算法之使用队列解决小猫钓鱼问题相关推荐

  1. python函数结构图_Python数据结构与算法之图结构(Graph)实例分析

    本文实例讲述了Python数据结构与算法之图结构(Graph).分享给大家供大家参考,具体如下: 图结构(Graph)--算法学中最强大的框架之一.树结构只是图的一种特殊情况. 如果我们可将自己的工作 ...

  2. python棋盘最短路径_Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例...

    本文实例讲述了Python数据结构与算法之图的最短路径(Dijkstra算法).分享给大家供大家参考,具体如下: # coding:utf-8 # Dijkstra算法--通过边实现松弛 # 指定一个 ...

  3. python遍历树结构_python 数据结构与算法——树的遍历

    1.广度优先遍历 2.深度优先遍历 先序遍历:把根放在最前面 中序遍历:把根放在中间 后序遍历:把根放在后面 # -*- coding: utf-8 -*- """ Cr ...

  4. python hash表_python数据结构与算法——哈希表

    哈希表 学习笔记 参考翻译自:<复杂性思考> 及对应的online版本:http://greenteapress.com/complexity/html/thinkcomplexity00 ...

  5. python思想读后感_数据结构与算法:Python语言描述读后感1000字

    <数据结构与算法:Python语言描述>是一本由裘宗燕著作,机械工业出版社出版的平装图书,本书定价:CNY 45.00,页数:343,特精心从网络上整理的一些读者的读后感,希望对大家能有帮 ...

  6. 数据结构与算法之循环队列的操作

    数据结构与算法之循环队列的操作 /* 循环队列的入队和出队算法设计 初始化循环队列 .打印队列.插入元素到循环队列.获取循环队列的首元素,元素不出队.出队.获取循环队列元素个数.判断循环队列的空和满. ...

  7. 数据结构与算法-栈与队列

    数据结构与算法-栈与队列 栈 基本概念 简单表述就是仅在表尾进行插入和删除操作的线性表. 常见操作 入栈和出栈, 均在线性表的尾部进行. 基本原则就是, 先入后出. 队列 基本概念 和栈不同的是,队列 ...

  8. python定义链表节点_Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】...

    本文实例讲述了Python数据结构与算法之链表定义与用法.分享给大家供大家参考,具体如下: 本文将为大家讲解: (1)从链表节点的定义开始,以类的方式,面向对象的思想进行链表的设计 (2)链表类插入和 ...

  9. python中的列表是采用链式结构实现的_Python数据结构与算法之列表(链表,linked list)简单实现...

    Python数据结构与算法之列表(链表,linked list)简单实现 Python 中的 list 并不是我们传统(计算机科学)意义上的列表,这也是其 append 操作会比 insert 操作效 ...

最新文章

  1. python编程实例下载-python网络编程之文件下载实例分析
  2. 关于“Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次”的问题...
  3. ARM的编程模式和7种模式
  4. java判断线程是否wait_Java并发编程之线程间通讯(上)wait/notify机制
  5. NVIDIA/Apex安装时遇到 C++编译:unrecognized command line option ‘-std=c++14’ 错误解决
  6. Dokcer使用总结(Dockerfile、Compose、Swarm)
  7. Linux下的 【pwd】 命令; 显示当前目录全路径。
  8. 阿里云服务器mysql莫名丢失_MySQL5.6 突然死掉 阿里云端的 服务器上搭建的
  9. 深圳Python培训:100天从新手到Python大师
  10. 电动汽车用内置式永磁同步电机基于查询表 的矢量控制算法, 自动生成满足 MTPA
  11. Atitit 木马病毒自动启动-------------win7计划任务的管理
  12. 通俗易懂|基于零信任理念的技术让远程办公「安全又敏捷」
  13. python将Word中表格复制到Excel中
  14. 补题:HOJ吉林selection B-Bribing Eve(Gym-101174B) (象限极角排序)
  15. cocos2dx[3.x](11)——拖尾渐隐效果MotionStreak
  16. perl学习(4) 子程序
  17. kata-container初探
  18. 风力发电系统的一些常见名词
  19. 微信小程序自定义导航栏(带汉堡包菜单)
  20. oracle 12 pan.baidu.com,Oracle 数据库和补丁下载地址和百度云盘地址 12.1.0.2 11.2.0.4 11.2.0.1...

热门文章

  1. Ecstore中的微信支付怎么样配置
  2. easyui datagrid 让某行复选框置灰不能选
  3. canvas绘图粒子扩散效果【原创】
  4. [Android] AsyncTask详解
  5. CRC冗余校验码的介绍和实现
  6. 实验5 —— 编写、调试具有多个段的程序
  7. ubuntu14.04(server amd64)免密码sudo
  8. 解决 html5 input type='number' 类型可以输入e
  9. Android IPC 结篇
  10. linux 前端环境搭建