题解 | #24点游戏算法#

24点游戏算法

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

# 将4个数排列组合有4!=24种情况;4个数中间的3个计算符号每个都有加减乘除4种可能,共有4**3 =64种可能
# 所以最多循环4!*4**3 = 24*64 次遍历全部情况,其中任意情况得到24即可退出循环。

from itertools import permutations

l_num = list(map(str,input().split(' ')))
l_signal = ['+','-','*','/']

l_possible_con =list(permutations(l_num))
new_l = []

is_24 =0 
for x1 in l_signal:
    for x2 in l_signal:
        for x3 in l_signal:
            for new_l in l_possible_con:
                new_l = list(new_l)
                y = '((' + new_l[0] + x1 + new_l[1] + ')' + x2 + new_l[2] + ')' + x3 + new_l[3]
                y1 =eval(y)
                if y1 ==  24:
                    is_24 = 1
                    break

if is_24 == 1:
    print('true')
else :
    print('false')

全部评论
感谢大佬的分享了
点赞 回复 分享
发布于 2023-05-30 09:03 河南
加上一些剪枝优化减少循环次数是不是更完美
点赞 回复 分享
发布于 2023-05-29 22:21 山东

相关推荐

陈逸轩1205:才105 哥们在养生呢
点赞 评论 收藏
分享
我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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