这篇文章主要介绍了基于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如何实现计算两组数据P值

    我们在做A/B试验评估的时候需要借助p_value,这篇文章记录如何利用python计算两组数据的显著性. 一.代码# TTest.py # -*- coding: utf-8 -*- ''' # C ...

  2. python中如何取余_基于python 取余问题(%)详解

    取余的公式: 余数=除数-被除数*商 python的的余数是按照整除(向下取整)得到的商来计算的. 取余问题主要分为 : 正数与正数,负数与负数,正数与负数 ,0 正数与正数 #大数/小数:因为得出的 ...

  3. python中pygame模块下载_基于python中pygame模块的Linux下安装过程(详解)

    pyhthon中pygame模块怎么安装?pyhthon中pygame模块怎么安装?鄙人为初二一名学生,闲来无事 钻研起电这句话还是建议问一下你们代课老师吧,因为你们老师是这方面专家,诺儿那边的话肯定 ...

  4. python爬虫开发数据库设计_基于Python的DBLP数据库爬虫系统

    老师让写个爬虫帮他爬点数据,以前没写过爬虫,网上查下Python挺方便的,花了一晚上把Python入了个门就开始写了,写篇博客记录下这个过程. 最近在上软件工程,用用软件工程那套来写下,嘿嘿. 1. ...

  5. python中with类的_在Python中使用`with`的不同类

    我不确定这是否是你正在寻找的那种hackery ...... import inspect class renameable(object): def rename_me(self, new_name ...

  6. python中exception类的_什么是Python异常?Python异常的种类

    程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)#语法错误示范一 if #语法错误示范二 def test: pass 2. ...

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

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

  8. python中的递归思想_〖Python〗-- 递归、面向对象初识及编程思想

    [递归.面向对象初识及编程思想] 一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递归策 ...

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

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

  10. python中object的用法_【Python】【基础知识】【内置函数】【object的使用方法】

    原英文帮助文档: classobject Return a new featureless object. object is a base for all classes. It has the m ...

最新文章

  1. ORA-4031错误深入解析
  2. php esi技术,Php环境搭建 – 巴黎高等计算机学院(ESI-SUPINFO)中国校区技术博客...
  3. 启动pip时,< Fatal error in launcher: Unable to create process using ‘“‘ >问题的原因及解决方法
  4. 零开始学python_从零开始学Python
  5. 【整理】使用云计算服务面临的几个安全问题
  6. HttpServletRequest(request的一些API)
  7. 人脸对齐(七)--JDA算法
  8. 智慧城市智慧园区智慧路灯方案介绍
  9. USACO3.4 “破锣摇滚”乐队 Raucous Rockers - DP
  10. 3 ROC曲线和PR曲线和AUG
  11. Python报错:ImportError: cannot import name 'downsample'
  12. android电视APP开机自启动,安卓电视、机顶盒如何开机自动启动看电视直播-今日头条...
  13. 外网怎么访问公司内网的数据库?
  14. rust future async/await
  15. 美国依靠美元霸权, 是如何收割世界财富的?
  16. UrlRewrite
  17. 浅尝辄止_数学建模(笔记_时间序列分析及其SPSS实现)
  18. 数据湖与数据仓库的新未来:阿里提出湖仓一体架构
  19. 保护计算机组件免受esd,当电子元件性能下降:如何保护您的模拟前端
  20. 2017年最新互联网行业薪资报告,云计算和大数据最高

热门文章

  1. 蓝叠模拟器的adb程序位置
  2. 接地/漏电(原理图)/接零/零线保护
  3. VVC系列(三)xCompressCTU、xCompressCU和xCheckModeSplit解析
  4. Android 应用集成友盟统计
  5. Gitter---高颜值GitHub小程序客户端诞生记,2021年安卓社招面试题精选
  6. php theexcerpt,the_excerpt()函数
  7. Flutter Sliver大家庭之Sliver实战④
  8. vue2.x和3.x中mock数据方式
  9. .net接入微信二维码支付(模式二)
  10. Android 多渠道打包与开发