题解 | #24点游戏算法#

24点游戏算法

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

import sys

for line in sys.stdin:
    nums = line.strip().split()

ops = ['+', '-', '*', '//']
flag = False

def calc_nums(nums, res=0):
    for i in nums[:]: # must consider the order of those items
        # print(nums, i)
        nums.remove(i)
        num = i
        # print(nums, res)
        for op in ops:
            # print(op)
            for j in nums:
                # print(num, op, j)
                if op == '//' and j == '0':
                    # print('jumped')
                    break
                res = int(eval(num + op + j))
                # print(res)
                if res == 24:
                    global flag
                    flag = True
                elif nums:
                    new_nums = nums[:]
                    new_nums.append(str(res))
                    new_nums.remove(j)
                    calc_nums(new_nums, res)

calc_nums(nums)
print('true') if flag else print('false')

全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务