题解 | #24点运算#py递归

24点运算

https://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d

d = {'3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9,
    '10':10, 'J':11, 'Q':12, 'K':13, 'A':1, '2':2}
def f(nums, target):
    if len(nums) == 1 and d[nums[0]] == target:
        res.append(nums[0])
        return True
        
    for i in range(len(nums)):
        a = nums[i]
        b = nums[:i] + nums[i+1:]
        if f(b, target + d[a]):
            res.append('-' + a)
            return True
        elif f(b, target - d[a]):
            res.append('+' + a)
            return True
        elif f(b, target * d[a]):
            res.append('/' + a)
            return True
        elif f(b, target / d[a]):
            res.append('*' + a)
            return True
        
while True:
    try:
        nums = input().strip()
        if 'joker' in nums or 'JOKER' in nums:
            print('ERROR')
        else:
            nums = nums.split()
            res = []
            if f(nums, 24):
                print(''.join(res))
            else:
                print('NONE')
    except:
        break

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-30 18:19
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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