题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
没什么新意, 纯暴力破解
import itertools
num = input().split(' ')
def find(num):
possible = 'false'
for nums in itertools.permutations(num):
for one in '+-*/':
for two in '+-*/':
for three in '+-*/':
cmd = nums[0]+one+nums[1]+two+nums[2]+three+nums[3]
for i in [0,2,4,6]:
cmd_left = cmd[0:i]+'('+cmd[i::]
for j in [len(cmd_left)-2*k for k in range(4)]:
cmd_right = cmd_left[0:j] + ')' + cmd_left[j::]
try:
r = eval(cmd_right)
if r == 24:
possible = 'true'
return possible
except:
pass
return possible
print(find(num))