-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path24_games.py
33 lines (31 loc) · 1.2 KB
/
24_games.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from operator import truediv, mul, add, sub
class Solution(object):
def judgePoint24(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
def helper(nums):
if len(nums) == 1:
return abs(nums[0] - 24) < 1e-6
for i in range(len(nums)):
num1 = nums[i]
for j in range(i + 1, len(nums)):
if i == j:
continue
num2 = nums[j]
combs = {mul(num1, num2), mul(num2, num1), add(num1, num2), sub(num1, num2), sub(num2, num1)}
if num2 != 0:
combs.add(truediv(num1, num2))
if num1 != 0:
combs.add(truediv(num2, num1))
for comb in combs:
arr = []
for k in range(len(nums)):
if k != i and k != j:
arr.append(nums[k])
arr.append(comb)
if helper(arr):
return True
return False
return helper(nums)