题解 | #HJ88 扑克牌大小#
扑克牌大小
http://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
解题思路:
首先定义一个列表或者字典表示扑克牌的大小(顺序),可以定义为或者 . 若选择列表形式,则比较牌型对应的索引的大小;若选择字典形式,则比较牌型对应的字典的值。
若两手牌的数目相同,则比较两手牌的第一张牌。个子,对子,三个,炸弹,顺子的相互比较很好理解,若同为两张牌,可能有一手牌是王炸,这时比较两手牌的第一张牌也可以区分大小。(例如对A和王炸,比较第一张牌可以区分大小)。
若两手牌数目不同,则当且仅当一方为炸(含王炸)时两者可以比较大小,否则输出error。
这里选择用列表表示扑克牌的顺序,代码实现如下所示:
poke_info = ['3','4','5','6','7','8','9','10','J','Q','K','A','2','joker','JOKER']
input_poke = input().split('-')
poke_one, poke_two = input_poke[0], input_poke[1]
list_one, list_two = poke_one.split(), poke_two.split()
len_one, len_two = len(list_one), len(list_two)
if len_one == len_two:
if poke_info.index(list_one[0]) > poke_info.index(list_two[0]):
print(poke_one)
else:
print(poke_two)
else:
if (poke_one == 'joker JOKER') | (poke_two == 'joker JOKER'):
print('joker JOKER')
elif len_one == 4:
print(poke_one)
elif len_two == 4:
print(poke_two)
else:
print('ERROR')