非递归版本,递归版本一直有点问题,等会再调
def func():
while True:
try:
num = list()
num = input().split(" ")
for i, k in enumerate(num):
if k == "A":
num[i] = 1
elif k == "T":
num[i] = 10
elif k == "J":
num[i] = 11
elif k == "Q":
num[i] = 12
elif k == "K":
num[i] = 13
calculate_list_1,Flag = calculate(num,num,1)
calculate_list_2,Flag = calculate(calculate_list_1,num,2)
calculate_list_3,Flag = calculate(calculate_list_2,num,3)
calculate_list_4,Flag = calculate(calculate_list_3,num,4)
if Flag:
print("Yes")
else:
print("No")
except EOFError:
break
def swap(a, b):
if a < b:
c = a
a = b
b = c
return int(a), int(b)
def calculate(num_list_1,num_list_2,round):
calculate_tmp1 = list()
for num1 in num_list_1:
for num2 in num_list_2:
num1, num2 = swap(int(num1), int(num2))
num = num1+num2
if round==4 and num==24:
return calculate_tmp1,True
if num not in calculate_tmp1:
calculate_tmp1.append(num)
num = num1-num2
if round==4 and num==24:
return calculate_tmp1,True
if num not in calculate_tmp1:
calculate_tmp1.append(num)
num = num1*num2
if round==4 and num==24:
return calculate_tmp1,True
if num not in calculate_tmp1:
calculate_tmp1.append(num)
if num2!=0:
num = num1 / num2
if round == 4 and num == 24:
return calculate_tmp1, True
if num not in calculate_tmp1:
calculate_tmp1.append(num)
return calculate_tmp1,False
if __name__ == "__main__":
func()