[Lintcode]739. 24 Game/[Leetcode]679. 24 Game

Posted siriusli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Lintcode]739. 24 Game/[Leetcode]679. 24 Game相关的知识,希望对你有一定的参考价值。

?[Lintcode]739. 24 Game/[Leetcode]679. 24 Game

本题难度: Hard/Medium

Description

You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated through?*,?/,?+,?-,?(,?)?to get the value of 24.

Example 1:

Input: [4, 1, 8, 7]
Output: True
Explanation: (8-4) * (7-1) = 24

Example 2:

Input: [1, 2, 1, 2]
Output: False

Note:

The division operator?/?represents real division, not integer division. For example, 4 / (1 - 2/3) = 12.
Every operation done is between two numbers. In particular, we cannot use?-?as a unary operator. For example, with?[1, 1, 1, 1]?as input, the expression?-1 - 1 - 1 - 1?is not allowed.
You cannot concatenate numbers together. For example, if the input is?[1, 2, 1, 2], we cannot write this as 12 + 12.

我的代码


import sys
class Solution:
? ??
? ? def judgePoint24(self, nums: List[int]) -> bool:
? ? ? ? def cal(a,b):
? ? ? ? ? ? if a == 0:
? ? ? ? ? ? ? ? return b,-b,0
? ? ? ? ? ? if b == 0:
? ? ? ? ? ? ? ? return a,-a,0
? ? ? ? ? ? return list(a+b,a-b,b-a,a*b,a/b,b/a)
? ? ? ? stack = [[float(item) for item in nums]]
? ? ? ? while (len(stack) > 0):
? ? ? ? ? ? tmp_nums = stack.pop()
? ? ? ? ? ? if len(tmp_nums) == 1:
? ? ? ? ? ? ? ? if abs(tmp_nums[0] - 24.0) <= 0.0001:
? ? ? ? ? ? ? ? ? ? return True
? ? ? ? ? ? ? ? continue
? ? ? ? ? ? l = len(tmp_nums)
? ? ? ? ? ? for n1 in range(l - 1):
? ? ? ? ? ? ? ? for n2 in range(n1 + 1,l):
? ? ? ? ? ? ? ? ? ? tmp_cals = cal(tmp_nums[n1],tmp_nums[n2])
? ? ? ? ? ? ? ? ? ? for tmp_cal in tmp_cals:
? ? ? ? ? ? ? ? ? ? ? ? tmp_res = [tmp_cal] + tmp_nums[:n1] + tmp_nums[n1 + 1:n2] + tmp_nums[n2 + 1:]
? ? ? ? ? ? ? ? ? ? ? ? stack.append(tmp_res)
? ? ? ? return False ? ? ? ? ? ? ??
? ? ? ? ? ? ? ??

以上是关于[Lintcode]739. 24 Game/[Leetcode]679. 24 Game的主要内容,如果未能解决你的问题,请参考以下文章

lintcode-medium-Jump Game

[LintCode] Stone Game

[LintCode]117. Jump Game II

739. [网络流24题] 运输问题

图-搜索-dfs-739. 24点

[LeetCode] 877. Stone Game == [LintCode] 396. Coins in a Line 3_hard tag: 区间Dynamic Programming, 博弈(