题解 | #24点运算#

24点运算

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

def fun(count,op,l):
    if op == "":
        for i,v in enumerate(data):
            fun(v,f"{tran.get(v,v)}",data[:i] + data[i+1:])
    elif l == []:
        if count == 24:
            global result
            result = op
            return
    else:
        for i,v in enumerate(l):
            fun(count+v,f"{op}+{tran.get(v,v)}",l[:i] + l[i+1:])
            fun(count-v,f"{op}-{tran.get(v,v)}",l[:i] + l[i+1:])
            fun(count*v,f"{op}*{tran.get(v,v)}",l[:i] + l[i+1:])
            fun(count/v,f"{op}/{tran.get(v,v)}",l[:i] + l[i+1:])
try:
    data = list(map(int,input().replace("A","1").replace("J","11").replace("Q","12").replace("K","13").split()))
    tran = {1:"A",11:"J",12:"Q",13:"K"}
    global result
    result = ""
    fun(0,"",data)
    print(result if result else "NONE")
except:
    print("ERROR")

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务