题解 | #24点运算#

24点运算

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

a = input().split()
c = {'3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10, 'J': 11, 'Q': 12, 'K': 13, 'A': 1, '2': 2}
d = dict((str(y), x) for x,y in c.items())

def b(a, num, s):
    if len(a) == 0:
        if num == 24:
            print(''.join(d.get(x, x) for x in s))
            return True
        else:
            return False
        
    for i, x in enumerate(a):
        a1 = a[0:i]+a[i+1:]
        if b(a1, num+x, s+['+',str(x)]):
            return True
        if b(a1, num-x, s+['-',str(x)]):
            return True
        if b(a1, num*x, s+['*',str(x)]):
            return True
        if b(a1, num//x, s+['/',str(x)]):
            return True

    return False


for i, x in enumerate(a):
    if x not in c:
        print('ERROR')
        break
    else:
        a[i] = c[x]
else:
    for i, x in enumerate(a):
        a1 = a[0:i]+a[i+1:]
        if b(a1, x, [str(x)]):
            break
    else:
        print('NONE')

全部评论

相关推荐

贺兰星辰:不要漏个人信息,除了简历模板不太好以外你这个个人简介是不是太夸大了...
点赞 评论 收藏
分享
我是小红是我:学校换成中南
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务