这道题实在算不上【较难】,主要是题目数据把复杂的情况全部屏蔽了。
可能可以说得上难的点在于理解题意吧,只要把【类型相同】转化为【长度相同】,这道题就非常简单了。
#思路:大模拟,注意细节
#不知道题目的意思是不是每手牌只由一种牌型组成,比如33344这种算不算合法牌型,
#因为5张里面包含了两种牌型,如果这种不合法的话就很简单了,直接判断长度,
#长度相等的一定是相同牌型,直接比第一个元素大小就行了
#先按这种简单的方式试试
std="3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER".split()#标准大小
#输入
s=input().split('-')
a=s[0].split()
b=s[1].split()
#判断函数
def check(a,b):#a,b为列表
global s
#特殊判断有无炸弹
#任意一方有对王
if ("joker" in a and "JOKER" in a) or ("joker" in b and "JOKER" in b):#a有对王
return "joker JOKER"#这里有可能有问题,万一输入的是大王小王,而不是小王大王
#两边都是炸弹
elif len(a)==4 and len(b)==4:#只要长度为4,就是炸弹,因为输入合法
if std.index(a[0])>std.index(b[0]):#a大
return s[0]
else:
return s[1]
#只有一边是炸弹并且没有王炸
elif len(a)==4 or len(b)==4:
if len(a)==4:
return s[0]
else:
return s[1]
#没有炸弹,检查类型是否相同
#长度相同
elif len(a)==len(b):
#直接比第一个元素大小
if std.index(a[0])>std.index(b[0]):#a大
return s[0]
else:
return s[1]
#长度不同
else:
return "ERROR"
print(check(a,b))
#过了,说明这题真的很简单,从输入保证了一手牌不会由两种牌型组成
#实际上【类型相同】在这里等同于【长度相同】,所以判断细节就少了很多

京公网安备 11010502036488号