玩逻辑的,不难但是量大。只需要记录两个变量即可,一个是第一张牌的大小,一个是牌的类型。先比较牌的类型(炸弹,顺子,对子等),若类型相同则比较第一张牌的大小,若不同则按规则返回炸弹或者是ERROR。

while True:
    try:
        str1 = str(input())
        lstr1 = len(str1)

        flag = 0
        jump = 0
        jump2 = 0
        kstr = 0
        poke1 = []
        poke2 = []
        enter1 = 0
        enter2 = 0

        for i in range(lstr1):
            if(str1[i] == ' '):
                continue
            if(str1[i] == '-'):
                flag = 1
                jump = 1
                kstr = i
                continue
            if(flag == 0 and jump == 0 and enter1 == 0):    #第一张牌
                if('3' <= str1[i] <= '9'):
                    poke1.append(ord(str1[i]))
                    poke1.append(1)
                elif(str1[i] == '1'):
                    poke1.append(58)
                    poke1.append(1)
                elif(str1[i] == 'J'):
                    poke1.append(60)
                    poke1.append(1)
                elif(str1[i] == 'Q'):
                    poke1.append(61)
                    poke1.append(1)
                elif(str1[i] == 'K'):
                    poke1.append(62)
                    poke1.append(1)
                elif(str1[i] == 'A'):
                    poke1.append(199)
                    poke1.append(1)
                elif(str1[i] == '2'):
                    poke1.append(200)
                    poke1.append(1)
                elif(str1[i] == 'j'):
                    poke1.append(250)
                    poke1.append(1)
                enter1 = 1
            elif(flag == 0 and jump == 0 and enter1 == 1):   #第二张牌
                if('3' <= str1[i] <= '9'):
                    if(ord(str1[i]) == poke1[0]):
                        poke1[1] += 1
                    elif(ord(str1[i]) - 1 == poke1[0]):
                        poke1[1] = 5
                        jump = 1
                elif(str1[i] == '1'):
                    if(poke1[0] == 58):
                        poke1[1] += 1
                    elif(poke1[0] == 57):
                        poke1[1] = 5
                        jump = 1
                elif(str1[i] == 'Q' ):
                    if(poke1[0] == 61):
                        poke1[1] += 1
                elif(str1[i] == 'K'):
                    if(poke1[0] == 62):
                        poke1[1] += 1
                elif(str1[i] == 'A'):
                    if(poke1[0] == 199):
                        poke1[1] += 1
                elif(str1[i] == '2'):
                    if(poke1[0] == 200):
                        poke1[1] += 1
                elif(str1[i] == 'J'):
                    if(poke1[0] == 60):
                        poke1[1] += 1
                    elif(poke1[0] == 250):
                        poke1[1] = 20
                        jump = 1
                    elif(poke1[0] == 58):
                        poke1[1] = 5
                        jump = 1
                elif(str1[i] == 'O'):
                    poke1[0] = 300
                    poke1[1] = 1
                    jump = 1
            elif(flag == 1 and jump2 == 0 and enter2 == 0):    #第一张牌
                if('3' <= str1[i] <= '9'):
                    poke2.append(ord(str1[i]))
                    poke2.append(1)
                elif(str1[i] == '1'):
                    poke2.append(58)
                    poke2.append(1)
                elif(str1[i] == 'J'):
                    poke2.append(60)
                    poke2.append(1)
                elif(str1[i] == 'Q'):
                    poke2.append(61)
                    poke2.append(1)
                elif(str1[i] == 'K'):
                    poke2.append(62)
                    poke2.append(1)
                elif(str1[i] == 'A'):
                    poke2.append(199)
                    poke2.append(1)
                elif(str1[i] == '2'):
                    poke2.append(200)
                    poke2.append(1)
                elif(str1[i] == 'j'):
                    poke2.append(250)
                    poke2.append(1)
                enter2 = 1
            elif(flag == 1 and jump2 == 0 and enter2 == 1):   #第二张牌
                if('3' <= str1[i] <= '9'):
                    if(ord(str1[i]) == poke2[0]):
                        poke2[1] += 1
                    elif(ord(str1[i]) - 1 == poke2[0]):
                        poke2[1] = 5
                        jump2 = 1
                elif(str1[i] == '1'):
                    if(poke2[0] == 58):
                        poke2[1] += 1
                    elif(poke2[0] == 57):
                        poke2[1] = 5
                        jump2 = 1
                elif(str1[i] == 'Q' ):
                    if(poke2[0] == 61):
                        poke2[1] += 1
                elif(str1[i] == 'K'):
                    if(poke2[0] == 62):
                        poke2[1] += 1
                elif(str1[i] == 'A'):
                    if(poke2[0] == 199):
                        poke2[1] += 1
                elif(str1[i] == '2'):
                    if(poke2[0] == 200):
                        poke2[1] += 1
                elif(str1[i] == 'J'):
                    if(poke2[0] == 60):
                        poke2[1] += 1
                    elif(poke2[0] == 250):
                        poke2[1] = 20
                        jump2 = 1
                    elif(poke2[0] == 58):
                        poke2[1] = 5
                        jump2 = 1
                elif(str1[i] == 'O'):
                    poke2[0] = 300
                    poke2[1] = 1
                    jump2 = 1
            if(jump == 1 and jump2 == 1):
                break

        flag1 = 0

        if(poke1[1] == poke2[1]):
            if(poke1[0] > poke2[0]):
                flag1 = 1
            else:
                flag1 = 2
        elif(poke1[1] != poke2[1]):
            if(poke1[1] == 20):
                flag1 = 1
            elif(poke2[1] == 20):
                flag1 = 2
            elif(poke1[1] != 20 and poke2[1] != 20):
                if(poke1[1] == 4):
                    flag1 = 1
                elif(poke2[1] == 4):
                    flag1 = 2
                elif(poke1[1] != 4 and poke2[1] != 4):
                    print('ERROR')

        if(flag1 == 1):
            print(str1[0:kstr])
        elif(flag1 == 2):
            print(str1[kstr+1:])
    except:
        break