- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章华为校园招聘上机笔试题 扑克牌大小(python)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文为大家分享了华为校园招聘上机笔试题,供大家参考,具体内容如下 。
[编程题] 扑克牌大小 时间限制: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 ''' 。
''' 解题思路:仔细小心 华为笔试的题目解题思路都很简单,一眼就能望到头,不需要太多思考,只要仔细小心的分析清楚每一种情况, 就都能做出来 ''' 。
''' 代码运行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 ''' 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
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
:
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/qq_34617032/article/details/78529974 。
最后此篇关于华为校园招聘上机笔试题 扑克牌大小(python)的文章就讲到这里了,如果你想了解更多关于华为校园招聘上机笔试题 扑克牌大小(python)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试编写生成 4 手随机扑克牌的代码 (来源:wiseowl.co.uk) 显然,这些值应该是唯一的。这是我已经尝试过的代码,但是我无法使其工作。 Sub poker_is_hard() Dim
我正在尝试编写一个小程序来显示卡片包以及其他内容。 我有一个文件夹,里面有 52 张卡片图像。 如何为 Card 对象的每个实例分配图像? 我需要在对象内创建一个 52 图像数组,然后为每张卡分配正确
我试图让我的游戏中的扑克牌重叠,这样只能看到一张牌的前半部分,而另一半被下一张扑克牌覆盖。唯一应该完全可见的卡片是最后一张/最右边的卡片。 我将以下代码与 framelayout 和 relative
现在我知道了寻找顺子背后的基本逻辑,我假设其中包括一个伪 function is_straight(array $cards) { sort($cards); i
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在设计许多(希望是数千)玩家可以同时玩某些纸牌游戏的游戏网站。这副牌是标准的 52 张牌。每张牌都有花色和等级。牌将一直被洗牌、发牌、挑选、排序、打出。我的问题是,Card 应该是枚举、结构还是类
我遇到了一个真正令人困惑的错误,在过去的几个小时里我一直试图解决这个错误,但没有成功。我正在研究扑克实现。最初,我通过迭代循环生成卡片。 const suits = ['Heart', 'Spade'
我是一名优秀的程序员,十分优秀!