题解 | #24点游戏算法#

24点游戏算法

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

用循环,没有用递归。

def gen(a):
    b = len(a)
    for i in range(0, b):
        c = a[:]
        num1 = c.pop(i)
        for j in range(0, b - 1):
            d = c[:]
            num2 = d.pop(j)
            yield d + [num1 + num2]
            yield d + [num1 - num2]
            yield d + [num1 * num2]
            if not (abs(num2) < 1e-6):
                yield d + [num1 / num2]
'''
b = gen([1,2,3])
for i in b:
    print(i)
'''

o = input()
a = list(map(int, o.split()))

def check(a):
    gen_list = [gen(a)]

    while len(gen_list):
        try:
            res = next(gen_list[-1])
            if len(res) == 1:
                if abs(res[0] - 24) < 1e-6:
                    return 'true'
                    break
            else:
                gen_list.append(gen(res))
        except StopIteration:
            gen_list.pop(-1)
    
    return 'false'

print(check(a))

全部评论

相关推荐

敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。
点赞 评论 收藏
分享
09-29 00:03
门头沟学院 Java
点赞 评论 收藏
分享
11-13 10:17
门头沟学院 Java
昨天面美团,jvm,juc问的好深啊,感觉小林coding不太够喔,牛油们有没有什么推荐的八股网站嘛🕒&nbsp;岗位/面试时间👥&nbsp;面试题目🤔&nbsp;面试感受
明天不下雨了:小林Coding:https://xiaolincoding.com/ 全栈哥:https://www.pdai.tech/ Guide哥:https://javaguide.cn/ 秀哥:https://interviewguide.cn/ 沉默王二:https://javabetter.cn/home.html 磊哥:https://www.javacn.site/interview/basic/ 小傅哥:https://bugstack.cn/ 源码哥:https://doocs.github.io/source-code-hunter/#/ 各大厂的公众号技术文章和一些经典的书籍
面试太紧张了怎么办?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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