题解 | #24点运算#

24点运算

https://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d

from itertools import permutations, product

cards=['','A']+list(map(str,range(2, 11)))+['J','Q','K']
a=input().split()
opts=['+','-','*','/']
def calc(a,b,opt):
    if opt=='+':
        return a+b
    elif opt=='-':
        return a-b
    elif opt=='*':
        return a*b
    else:
        return a//b

def test(a):
    for i in permutations(a): # 不可重复选取的所有排列
        ret=''
        for j in product(opts,repeat=3): # 可重复选取的所有排列
            res=calc(calc(calc(i[0], i[1], j[0]), i[2], j[1]), i[3],j[2])
            if res==24:
                for k in range(3):
                    ret+=cards[i[k]]+j[k]
                ret+=cards[i[3]]
                return ret
    return 'NONE'

if 'joker' in a or 'JOKER' in a:
    print('ERROR')
else:
    a=[cards.index(i) for i in a]
    if a[0]*a[1]*a[2]*a[3]<24:
        print('NONE')
    else:
        print(test(a))
        





全部评论

相关推荐

努力成为C语言高手:质疑大祥老师,理解大祥老师,成为大祥老师
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务