24 Game LeetCode solution in Python

1
class Solution:
2
def judgePoint24(self, cards: List[int]) -> bool:
3
return self.allComputeWays(cards, 4, 24)
4

5
def allComputeWays(self, nums, l, target):
6
if l == 1:
7
if abs(nums[0] - target) <= 1e-6:
8
return True
9
return False
10
for first in range(l):
11
for second in range(first + 1, l):
12
tmp1, tmp2 = nums[first], nums[second]
13
nums[second] = nums[l - 1]
14

15
nums[first] = tmp1 + tmp2
16
if self.allComputeWays(nums, l - 1, target):
17
return True
18
nums[first] = tmp1 - tmp2
19
if self.allComputeWays(nums, l - 1, target):
20
return True
21
nums[first] = tmp2 - tmp1
22
if self.allComputeWays(nums, l - 1, target):
23
return True
24
nums[first] = tmp1 * tmp2
25
if self.allComputeWays(nums, l - 1, target):
26
return True
27
if tmp2:
28
nums[first] = tmp1 / tmp2
29
if self.allComputeWays(nums, l - 1, target):
30
return True
31
if tmp1:
32
nums[first] = tmp2 / tmp1
33
if self.allComputeWays(nums, l - 1, target):
34
return True
35
nums[first], nums[second] = tmp1, tmp2
36
return False

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0