题解 | #24点游戏算法#

24点游戏算法

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

学习了这位大佬的思路https://blog.nowcoder.net/n/ecc7958961ea4037b488fddb34fd70ee?f=comment,在此基础上考虑了括号的使用情况。

import itertools

def noPara(arr, y):
    lis = [y]
    for i in arr:
        lis.append(i)
        lis.append(i + y)
        lis.append(i - y)
        lis.append(i*y)
        lis.append(i/y)
    return lis

def para(a, b, c, d):
    ans1 = (a + b) * (c + d)
    ans2 = (a + b) * (c - d)
    ans3 = (a - b) * (c + d)
    ans4 = (a - b) * (c - d)
    return [ans1, ans2, ans3, ans4]

num_list = [int(i) for i in input().split(' ')]
judge = 0
for i in range(len(list(itertools.permutations(num_list)))):
    a, b, c, d = list(itertools.permutations(num_list))[i]
    lis1 = noPara([a], b)
    lis2 = noPara(lis1, c)
    lis3 = noPara(lis2, d)
    lis3.extend(para(a, b, c, d))
    if 24 in lis3:
        print('true')
        judge = 1
        break
if judge == 0:
        print('false')






全部评论

相关推荐

点赞 评论 收藏
分享
10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务