这篇文章主要介绍了基于Python实现扑克牌面试题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

据说是腾讯的面试题,以下是要求:

一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手中没牌。根据桌上的牌堆顺序,输出原先手中牌堆的顺序数组。

实现思路:

1、首先定义一个2维数组,代表最后桌上的牌堆排列情况。内部数组flist[i][0], flist[i][1]分别表示牌堆的排序和牌面的序号。

2、分n为奇数或偶数2种情况,用for循环逆推出原牌组的的顺序值(顺序为小数在下,大数在上)

3、对新数组用顺序值进行逆向排序后,输出由牌面的序号组成的数组

def cl(n):

flst = [] #用数组flst定义最后桌上的牌堆顺序

for i in range(1, n+1):

flst.append([i, i])

if n%2 == 0: #n为偶数情况

for t in range(1, int(n/2)+1): #t为循环次数,代表一次取牌放牌顶+牌底的过程

flst[n-t][0] = 2*t - 1

flst[t-1][0] = 2*t

else: #n为奇数情况

flst[0][0]= 1 #新牌堆首张牌必定为原牌堆的最后一张

for t in range(1, n//2+1):

flst[n-t][0] = 2*t

flst[t][0] = 2*t + 1

olst = sorted(flst, key=lambda x: x[0], reverse=True) #对二维数组进行排序

res = [i[1] for i in olst] #求得原牌组牌号

return res

最后测试打印结果

print(cl(10))

print(cl(11))

输出正确

[5, 6, 4, 7, 3, 8, 2, 9, 1, 10]

[6, 7, 5, 8, 4, 9, 3, 10, 2, 11, 1]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

python生成一副扑克牌_基于Python实现扑克牌面试题相关推荐

  1. 基于python爬虫技术的应用_基于Python爬虫技术的应用

    办公自动化杂志 一.引言 本文主要是对 Python 爬虫技术进行阐述,基于 python 的爬虫与其他语言相比的有很多优势.通过爬去某个网站的所有新闻这个案例,来进一步阐释 Python 爬虫技术的 ...

  2. python图书馆管理系统实验报告_基于Python的图书馆业务报表自动生成研究

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的图书馆业务报表自动生成研 究 作者:辛海滨 来源:<电脑知识与技术> 2016 年第 27 期 摘要:针对 ...

  3. python生成word 带目录_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

  4. python图书馆管理系统实验报告_基于python图书馆管理系统设计实例详解

    写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...

  5. python制作物联网控制软件下载_基于Python和Django框架的物联网智能设备管理系统的设计与实现...

    论文写作指导:请加QQ229366758 基于Python和Django框架的物联网智能设备管理系统的设计与实现 作者:未知 摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理 ...

  6. python爬虫可视化web展示_基于Python爬虫的职位信息数据分析和可视化系统实现

    1. 引言 在这个新时代,人们根据现有的职位信息数据分析系统得到的职位信息越来越碎片化,面对收集到的大量的职位信息数据难以迅速地筛选出对自己最有帮助的职位信息,又或者筛选出信息后不能直观地看到数据的特 ...

  7. python卡方检验筛选特征原理_基于Python的遥感特征筛选—递归特征消除(RFE)与极限树(Extra-Trees)...

    引言 基于前几篇文章关于筛选方法的介绍,本篇同样给大家介绍两种python封装的经典特征降维方法,递归特征消除(RFE)与极限树(Extra-Trees, ET).其中,RFE整合了两种不同的超参数, ...

  8. 基于python的压测工具_基于Python和SIPp的自动化压力测试系统设计和实现

    信斌 王桂花 摘要:首先,分析了现有测试系统的不足,之后,介绍了软件组成和运行环境说明,最后,设计了基于Python和SIPp的自动化压力测试系统,并给出了相关代码.新的测试系统克服了现有测试系统的不 ...

  9. python 按需加载_基于python的opcode优化和模块按需加载机制研究(学习与个人思路)(原创)...

    基于python的opcode优化和模块按需加载机制研究(学习与思考) 姓名:XXX 学校信息:XXX 主用编程语言:python3.5 文档转换为PDF有些图片无法完全显示,请移步我的博客查看 完成 ...

最新文章

  1. 程序员初试和复试_程序员的软微mem经验贴
  2. matlab遍历文件夹下的所有文件
  3. 《C++STL基础及应用》读书笔记
  4. 文巾解题 797. 所有可能的路径
  5. 微信,QQ这类IM app怎么做——谈谈Websocket
  6. android 浏览指定相册,Android -- 采用系统相册浏览指定路径下照片
  7. LeetCode #43字符串相乘
  8. 学python必须得英语精通吗_“学习python必须精通的几个模块“
  9. ajax的两个重要参数contentType 和dataType
  10. 总之就是不太可爱(思维严谨性的考验)
  11. jQuery源码学习(四)
  12. 11-24 EDEM-FLUENT 耦合步骤
  13. 阿里巴巴JAVA编码规范考试
  14. 2022年3月23日蜻蜓q旗舰版v1.2.1重大性能更新-优化加载列表数据方式-更加丝滑-后端增加goeasy
  15. FTL(闪存转换层)简单介绍
  16. 非透明桥 Non-Transparent Bridging (一)
  17. 【Turtle合集】提前祝大家圣诞快乐,我为大家献歌一首,叮叮当,叮叮当,穷的响叮当——快开门,我送礼物来了哟~(圣诞树代码)
  18. android 方向传感器
  19. 困牛放牧(Sleepy Cow Herding)
  20. OpenFaceswap 入门教程(1):软件安装篇

热门文章

  1. oracle dcd设置,Oracle DCD 测试
  2. Android手机铃声代码实现
  3. JAVA笔记-面向对象(2)
  4. 学习记录,利用Redis的(sorted set)做每周热评的功能
  5. python psycopg2_Python和psycopg2在大数据下的多处理性能
  6. android设置title字体大小,Android自定义TitleView标题开发实例
  7. PHP:150个内置函数简单整合
  8. 分布式监控部署之Ganglia
  9. C语言如何加缓冲,C语言学习笔记之输出缓冲
  10. Gen8服务器系统安装,Gen8安装Esxi系统教程