题解 | #24点游戏算法#向大佬学习,递归YYDS

24点游戏算法

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

def fun(num_list, target):

if len(num_list) == 1:
    return num_list[0] == target
else:
    for i in range(len(num_list)):
        list1 = num_list[:i] + num_list[i+1:]
        n = num_list[i]
        if fun(list1, target + n) or fun(list1, target - n) or fun(list1, target * n) or fun(list1, target / n):
            return True
    else:
        return False

while True:

try:
    num_list = [int(i) for i in input().split()]
    if fun(num_list, 24):
        print('true')
    else:
        print('false')
    
except:
    break
全部评论
递归思路 分治思想
点赞 回复 分享
发布于 2022-10-14 20:39 湖南
用上了dfs,但是思路依旧是前面的逐个进行计算的思路,无法解决(1+1)*(2+4),等2+2的算式。
点赞 回复 分享
发布于 2023-07-05 19:52 陕西

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
评论
2
6
分享
牛客网
牛客企业服务