题解 | #24点游戏算法#

24点游戏算法

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

#递归法  来自力扣 
import math
def judge_point24(cards):
    if len(cards) == 1:
        return math.isclose(cards[0],24)    #浮点数会导致误差
    for i in range(len(cards)):
        a = cards.pop(0)        #取第一个数
        for j in range(len(cards)):
            b = cards.pop()     #取第二个数
            if b == 0:
                lst = [a+b,a*b,a-b]
            else:
                lst = [a+b,a-b,a*b,a/b]
            for value in lst:
                cards.append(value)     #剩下三个数
                if judge_point24(cards):    #递归
                    return True
                cards.pop()
            cards.append(b)     #前边的数用过放到后边
        cards.append(a)
    return False

cards = list(map(int,input().split()))
if judge_point24(cards):
    print('true')
else:
    print('false')

全部评论

相关推荐

大飞的诡术妖姬:之前看b站多明海有个说法,日本就业竞争非常低的原因不光是毕业学生少,还有很多人干两年不喜欢职场氛围就辞职躺平,位置也空了很多,论吃苦耐劳还得看咱们
点赞 评论 收藏
分享
流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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