题解 | #24点游戏算法#

24点游戏算法

https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb

def judgePoint24(num):
    e = 1e-6
    
    def operate(x, y):
        return [x+y, x-y, x*y] + ([x/y] if y - 0 > e else []) + ([y/x] if x - 0 > e else [])

    def dfs(num):
        # 若只剩一个数字,判断是否为24
        if len(num) == 1:
            return abs(num[0] - 24) < e
        n = len(num)
        # 遍历列表中所有数字
        for i in range(n):
            for j in range(n):
                # 针对不同的两个数字
                if i != j:
                    remains = [num[k] for k in range(n) if k != i and k != j] #去掉两个数字后的列表
                    for value in operate(num[i], num[j]):
                        if dfs(remains + [value]):
                            return True
        return False

    if dfs(num):
        return "true"
    else:
        return "false"
    
num = list(map(int, input().split()))
print(judgePoint24(num))

全部评论

相关推荐

Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务