华为校园招聘上机笔试题 扑克牌大小(python)


Posted in Python onApril 22, 2020

本文为大家分享了华为校园招聘上机笔试题,供大家参考,具体内容如下

[编程题] 扑克牌大小
时间限制:10秒
空间限制:131072K
扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。
牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):) 
3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 
输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker JOKER
请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR

基本规则:

(1)输入每手牌可能是个子,对子,顺子(连续5张),三个,炸弹(四个)和对王中的一种,不存在其他情况,
由输入保证两手牌都是合法的,顺子已经从小到大排列;
(2)除了炸弹和对王可以和所有牌比较之外,其他类型的牌只能跟相同类型的存在比较关系
(如,对子跟对子比较,三个跟三个比较),不考虑拆牌情况(如:将对子拆分成个子)
(3)大小规则跟大家平时了解的常见规则相同,个子,对子,三个比较牌面大小;顺子比较最小牌大小;
炸弹大于前面所有的牌,炸弹之间比较牌面大小;对王是最大的牌;
(4)输入的两手牌不会出现相等的情况。

答案提示:

(1)除了炸弹和对王之外,其他必须同类型比较。
(2)输入已经保证合法性,不用检查输入是否是合法的牌。
(3)输入的顺子已经经过从小到大排序,因此不用再排序了.

输入描述:

输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如4 4 4 4-joker JOKER。

输出描述:

输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。

输入例子1:

4 4 4 4-joker JOKER

输出例子1:

joker JOKER
'''

'''
解题思路:仔细小心
   华为笔试的题目解题思路都很简单,一眼就能望到头,不需要太多思考,只要仔细小心的分析清楚每一种情况,
   就都能做出来
'''

'''
代码运行结果:
答案正确:恭喜!您提交的程序通过了所有的测试用例
'''

def judge_token(cs):
 length = len(cs)
 if length == 1:
 return 'single'
 elif length == 3:
 return 'triple'
 elif length == 4:
 return 'bomb'
 elif length == 5:
 return 'seq'
 elif length == 2:
 if cs == ['joker', 'JOKER']:
  return 'j-bomb'
 else:
  return 'double'
 
card_dict = {'3': 1, '4': 2, '5': 3, '6': 4, '7': 5, '8': 6, '9': 7, '10': 8, 'J': 9, 'Q': 10, 'K': 11,
  'A': 12, '2': 13, 'joker': 14, 'JOKER': 15}
 
while True:
 try:
 cards = input().split('-')
 cards_1 = cards[0].split()
 cards_2 = cards[1].split()
 cards_1_token = judge_token(cards_1)
 cards_2_token = judge_token(cards_2)
 if cards_1_token != 'bomb' and cards_1_token != 'j-bomb' and cards_2_token != 'bomb' and cards_2_token != 'j-bomb':
  if cards_1_token == cards_2_token:
  if card_dict[cards_1[0]] > card_dict[cards_2[0]]:
   print(' '.join(cards_1))
  else:
   print(' '.join(cards_2))
  else:
  print('ERROR')
 elif (cards_1_token == 'bomb' or cards_1_token == 'j-bomb') and (cards_2_token != 'bomb' and cards_2_token != 'j-bomb'):
  print(' '.join(cards_1))
 elif (cards_1_token != 'bomb' and cards_1_token != 'j-bomb') and (cards_2_token == 'bomb' or cards_2_token == 'j-bomb'):
  print(' '.join(cards_2))
 elif cards_1_token == 'bomb' and cards_2_token == 'j-bomb':
  print(' '.join(cards_2))
 elif cards_1_token == 'j-bomb' and cards_2_token == 'bomb':
  print(' '.join(cards_1))
 else:
  if card_dict[cards_1[0]] > card_dict[cards_2[0]]:
  print(' '.join(cards_1))
  else:
  print(' '.join(cards_2))
 except:

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

Python 相关文章推荐
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
Python读取图片属性信息的实现方法
Sep 11 Python
Python实现多并发访问网站功能示例
Jun 19 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
python解析命令行参数的三种方法详解
Nov 29 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
python 实现一个简单的线性回归案例
Dec 17 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 Python
Python实现区域填充的示例代码
Feb 03 Python
PyQt5实现从主窗口打开子窗口的方法
Jun 19 #Python
python操作kafka实践的示例代码
Jun 19 #Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 #Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 #Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 #Python
在Qt中正确的设置窗体的背景图片的几种方法总结
Jun 19 #Python
梅尔倒谱系数(MFCC)实现
Jun 19 #Python
You might like
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
python文件比较示例分享
2014/01/10 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
如何在python中判断变量的类型
2020/07/29 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
前台文员个人求职信范文
2014/01/05 职场文书
大学生实习证明范本
2014/01/15 职场文书
高中运动会广播稿
2014/01/21 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书