题解 | #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))

全部评论

相关推荐

07-23 12:04
门头沟学院 Java
现在是很缺人吗
码农索隆:缺分母,不缺分子,这样好作为炫耀的资本
点赞 评论 收藏
分享
提前批过程记录base上海
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
牛客34884196...:你期望薪资4-5k,那确实可以重生了,但很难在深圳活下去
点赞 评论 收藏
分享
07-03 16:13
嘉应学院 Python
xiaolihuam...:很明显骗子,如果是hr直接约你面试了,哪用得着内推,如果是员工的话,你得多优秀,一线员工直接加你微信,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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