华为校园招聘上机笔试题 扑克牌大小(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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
Python中的hypot()方法使用简介
May 18 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
Python callable()函数用法实例分析
Mar 17 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
详解python运行三种方式
May 13 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
Python如何省略括号方法详解
Mar 21 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
Python如何发送与接收大型数组
Aug 07 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
怎么用Python识别手势数字
Jun 07 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
php生成RSS订阅的方法
2015/02/13 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
任意位置显示html菜单
2007/02/01 Javascript
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
Python实现豆瓣图片下载的方法
2015/05/25 Python
python中os模块详解
2016/10/14 Python
python paramiko模块学习分享
2017/08/23 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
电子信息毕业生自荐信
2013/11/16 职场文书
教师年度考核个人总结
2015/02/12 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
检讨书之工作不认真
2019/08/14 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
使用python创建股票的时间序列可视化分析
2022/03/03 Python
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server