华为校园招聘上机笔试题 扑克牌大小(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安装以及IDE的配置教程
Apr 29 Python
python创建关联数组(字典)的方法
May 04 Python
python文件操作之目录遍历实例分析
May 20 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
python3.x实现发送邮件功能
May 22 Python
python 自动去除空行的实例
Jul 24 Python
详解爬虫被封的问题
Apr 23 Python
python脚本开机自启的实现方法
Jun 28 Python
python实现大文件分割与合并
Jul 22 Python
Django中的模型类设计及展示示例详解
May 29 Python
python爬虫工具例举说明
Nov 30 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
php中session退出登陆问题
2014/02/27 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
javascript 常用代码技巧大收集
2009/02/25 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
js post提交调用方法
2014/02/12 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
Python中splitlines()方法的使用简介
2015/05/20 Python
python中正则表达式与模式匹配
2019/05/07 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
《美丽的田园》教学反思
2014/03/01 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
宝塔更新Python及Flask项目的部署
2022/04/11 Python
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers
OpenFeign实现远程调用
2022/08/14 Java/Android