华为校园招聘上机笔试题 扑克牌大小(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之for循环语句
Oct 02 Python
在Python中marshal对象序列化的相关知识
Jul 01 Python
玩转python爬虫之cookie使用方法
Feb 17 Python
Python实现网络端口转发和重定向的方法
Sep 19 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
python3 实现验证码图片切割的方法
Dec 07 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
python logging通过json文件配置的步骤
Apr 27 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 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 array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
自己开发Dojo的建议框架
2008/09/24 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python3使用requests发闪存的方法
2016/05/11 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
python try...finally...的实现方法
2020/11/25 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
struct和class的区别
2015/11/20 面试题
有模特经验的简历自我评价
2013/09/19 职场文书
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
酒店前台岗位职责
2015/04/16 职场文书
通知范文怎么写
2015/04/16 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书