题解 | #24点运算#
24点运算
https://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d
import sys from itertools import product,permutations for line in sys.stdin: a = line.strip().split() if 'joker' in a or 'JOKER' in a: print('ERROR') else: have = False mul = list(product('+-*/',repeat=3)) per = list(permutations(a,len(a))) als = {'J':11,'Q':12,'K':13,'A':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'+':'+','-':'-','*':'*','/':'/'} for i in range(len(mul)): for a in per: strings = '((({}{}{}){}{}){}{})'.format(als[a[0]],als[mul[i][0]],als[a[1]],als[mul[i][1]],als[a[2]],als[mul[i][2]],als[a[3]]) s = eval(strings) if s == 24: outstring = '{}{}{}{}{}{}{}'.format(a[0],als[mul[i][0]],a[1],als[mul[i][1]],a[2],als[mul[i][2]],a[3]) print(outstring) have = True break if not have: print('NONE')
针对全部可能组合暴力穷举