Skip to content

Commit 8c371ab

Browse files
Update 24Game.py
1 parent 57488ed commit 8c371ab

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

Python/Recursion/24Game.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
class TwentyFourGame(unittest.TestCase):
99

1010
def judgePoint24(self, nums: List[int]) -> bool:
11-
def recursion(nums: List[int]) -> bool:
12-
if len(nums) == 1:
13-
return True if nums[0] == 24 else False
14-
15-
for i, a in enumerate(nums):
16-
for j, b in enumerate(nums):
11+
def recursion(numArray: List[int]) -> bool:
12+
if len(numArray) == 1:
13+
# error case 1
14+
return True if (abs(numArray[0]-24.0) < 1e-6) else False
15+
16+
for i, a in enumerate(numArray):
17+
for j, b in enumerate(numArray):
18+
if i == j:
19+
continue
1720
possibleComb = [a+b, a*b, abs(a-b)]
1821
if a != 0:
1922
possibleComb.append(b/a)
@@ -22,21 +25,28 @@ def recursion(nums: List[int]) -> bool:
2225

2326
for newNum in possibleComb:
2427
newNums = []
25-
for k in range(len(nums)):
28+
for k in range(len(numArray)):
2629
if k != i and k != j:
27-
newNums.append(nums[k])
30+
newNums.append(numArray[k])
2831
newNums.append(newNum)
2932

33+
# print("current recursioin")
34+
# print(newNum)
35+
# print(newNums)
3036
if recursion(newNums):
3137
return True
3238

3339
return False
3440

3541
return recursion(nums)
3642

43+
@unittest.skip
3744
def test_Leetcode(self):
3845
self.assertTrue(self.judgePoint24([4,1,8,7]))
39-
# self.assertFalse(self.judgePoint24([1,2,1,2]))
46+
self.assertFalse(self.judgePoint24([1,2,1,2]))
47+
48+
def test_WrongAnswer(self):
49+
self.assertTrue(self.judgePoint24([3,3,8,8]))
4050

4151
if __name__ == '__main__':
4252
unittest.main()

0 commit comments

Comments
 (0)