华为校园招聘上机笔试题 扑克牌大小(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对指定目录下文件进行批量重命名的方法
Apr 18 Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 Python
Python单例模式实例详解
Mar 01 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
pyshp创建shp点文件的方法
Dec 31 Python
Python构建图像分类识别器的方法
Jan 12 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
python读取yaml文件后修改写入本地实例
Apr 27 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
Python中isnumeric()方法的使用简介
2015/05/19 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
python 制作磁力搜索工具
2021/03/04 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
物业管理个人自我评价
2013/11/08 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
行政处罚告知书
2015/07/01 职场文书
化验室安全管理制度
2015/08/06 职场文书
爱国教育主题班会
2015/08/14 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python