华为校园招聘上机笔试题 扑克牌大小(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中find()方法的使用
May 18 Python
Python 遍历子文件和所有子文件夹的代码实例
Dec 21 Python
使用Django Form解决表单数据无法动态刷新的两种方法
Jul 14 Python
浅谈Python的list中的选取范围
Nov 12 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
python中pygame安装过程(超级详细)
Aug 04 Python
Python 面向对象之类class和对象基本用法示例
Feb 02 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python创建字典及相关管理操作
Apr 13 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
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
十大使用PHP框架的理由
2015/09/26 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
python不带重复的全排列代码
2013/08/13 Python
Python发展史及网络爬虫
2019/06/19 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
农行实习自我鉴定
2013/09/22 职场文书
社区交通安全实施方案
2014/03/22 职场文书
班级旅游计划书
2014/05/03 职场文书
小学班主任事迹材料
2014/12/17 职场文书
2015大学生求职信范文
2015/03/20 职场文书
自我推荐信格式模板
2015/03/24 职场文书
企业投资意向书
2015/05/09 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书