基于Python实现扑克牌面试题


Posted in Python onDecember 11, 2019

这篇文章主要介绍了基于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计算书页码的统计数字问题实例
Sep 26 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
Python使用pymysql小技巧
Jun 04 Python
Python检查ping终端的方法
Jan 26 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
Jan 29 Python
详解爬虫被封的问题
Apr 23 Python
python3 enum模块的应用实例详解
Aug 12 Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 Python
Python作用域与名字空间原理详解
Mar 21 Python
python中setuptools的作用是什么
Jun 19 Python
Python实现将多张图片合成MP4视频并加入背景音乐
Apr 28 Python
Python如何使用argparse模块处理命令行参数
Dec 11 #Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 #Python
Python Lambda函数使用总结详解
Dec 11 #Python
Python迭代器模块itertools使用原理解析
Dec 11 #Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 #Python
Python partial函数原理及用法解析
Dec 11 #Python
opencv3/python 鼠标响应操作详解
Dec 11 #Python
You might like
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
Python BS4库的安装与使用详解
2018/08/08 Python
python 实现UTC时间加减的方法
2018/12/31 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
python logging添加filter教程
2019/12/24 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
python实现手势识别的示例(入门)
2020/04/15 Python
增大python字体的方法步骤
2020/07/05 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
汽车转让协议书
2015/01/29 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
box-shadow单边阴影的实现
2023/05/21 HTML / CSS