题解 | #24点运算#

24点运算

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

#使用递归即可,和【HJ67 24点游戏算法】类似
def check(l,n):
    ss=[0,'A','2','3','4','5','6','7','8','9','10','J','Q','K']
    if len(l)==1:
        if ss.index(l[0])==n:
            return l[0]
        else:
            return None
    else:
        for i in range(len(l)):
            ls=l[:i]+l[i+1:]
            m=ss.index(l[i])
            if check(ls,m+n):
                return check(ls,m+n)+'-'+l[i]
            if check(ls,n-m):
                return check(ls,n-m)+'+'+l[i]
            if check(ls,n*m):
                return check(ls,n*m)+'/'+l[i]
            if check(ls,n/m):
                return check(ls,n/m)+'*'+l[i]
while 1:
    try:
        l=input().split()
        if "joker" in l or "JOKER" in l:
            print("ERROR")
        else:
            ans=check(l,24)
            print(ans) if ans else print("NONE")
    except:
        break

全部评论

相关推荐

手撕没做出来是不是一定挂
Chrispp3:不会,写出来也不一定过
点赞 评论 收藏
分享
挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务