这道题实在算不上【较难】,主要是题目数据把复杂的情况全部屏蔽了。

可能可以说得上难的点在于理解题意吧,只要把【类型相同】转化为【长度相同】,这道题就非常简单了。

#思路:大模拟,注意细节

#不知道题目的意思是不是每手牌只由一种牌型组成,比如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))


#过了,说明这题真的很简单,从输入保证了一手牌不会由两种牌型组成
#实际上【类型相同】在这里等同于【长度相同】,所以判断细节就少了很多