Python3 DFS 递归

24点游戏算法

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

import sys
def dfs(nums):
    l = len(nums)
    if len(nums) == 1:
        return abs(nums[0] - 24) < eps
    for i in range(l):
        for j in range(i + 1, l):
            new_nums = [nums[k] for k in range(l) if i != k != j]
            if dfs(new_nums + [nums[i] + nums[j]]) or dfs(new_nums + [nums[i] - nums[j]]) or dfs(new_nums + [nums[j] - nums[i]])\
                    or dfs(new_nums + [nums[i] * nums[j]]) or (abs(nums[j]) > eps and dfs(new_nums + [nums[i] / nums[j]]))\
                    or (abs(nums[i]) > eps and dfs(new_nums + [nums[j] / nums[i]])):
                return True
    return False

eps = 1e-6
for line in sys.stdin:
    nums = list(map(int, line.split()))
    print('true' if dfs(nums) else 'false')
全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
6 4 评论
分享
牛客网
牛客企业服务