HJ67 题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
#暴力枚举试一试
a=input().split()
op=["+","-","*","/"]
#遍历操作数
for i in a:
temp=a[:]#这里拷贝一份,不要直接操作a,而且拷贝的时候还不能直接赋值为a,这样是浅拷贝,下一行操作temp也会影响a,得切片
temp.remove(i)#remove没有返回值,所以不能直接赋值给b
b=temp
for j in b:
temp=b[:]
temp.remove(j)
c=temp
for k in c:
temp=c[:]
temp.remove(k)
d=temp
#遍历运算符
for l in op:
for m in op:
for n in op:
# print(eval(i+l+j+m+k+n+d[0]))
ans=eval(str(eval(str(eval(i+l+j))+m+k))+n+d[0])#一步一步算,这样模拟有些情况带括号
# print(ans)
# print(i,j,k,d[0])
if abs(ans-24)<0.000001:
print("true")
exit()
else:
print("false")
#过啦~
#华为##华为od##华为机试##华为od机试#华为HJ103所有解法 文章被收录于专栏
这是我准备华为od面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~
三奇智元机器人科技有限公司公司福利 63人发布