华为校园招聘上机笔试题 扑克牌大小(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 27 Python
Python标准库inspect的具体使用方法
Dec 06 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
TensorFlow保存TensorBoard图像操作
Jun 23 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
Aug 18 Python
Python requests HTTP验证登录实现流程
Nov 05 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
cache_lite试用
2007/02/14 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
React实现todolist功能
2020/12/28 Javascript
Python数据结构之Array用法实例
2014/10/09 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python 获取图片分辨率的方法
2019/01/08 Python
详解Python 解压缩文件
2019/04/09 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
浅析python中while循环和for循环
2019/11/19 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
财务年终工作总结大全
2019/06/20 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
MySQL 数据库范式化设计理论
2022/04/22 MySQL
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS