rt,接着上次的绿题,又水了一道(由于输入问题给硬控半小时);
题目:P2382 化学分子式
tmp={};niums={}
while(True):
a=input().strip()
if(a=="END_OF_FIRST_PART"):break
while(" "in a):a=a.replace(" "," ")#处理空格
a=a.split(" ")
tmp[a[0]]=int(a[1])
l=sorted(tmp,key=lambda x:len(x),reverse=True)#让元素长度大的排在前面
for i in l:
niums[i]=tmp[i]#计入字典
while(True):
a=input().strip()
if(a=='0'):break
i=0
while(True):
if(i==len(a)-1):break
if((not a[i].isdigit()) and a[i+1].isdigit() and a[i]!='*'):
a=a[:i+1]+"*"+a[i+1:]
i+=1
for i in niums:
a=a.replace(i,"+"+str(niums[i]))
a=f"({a.replace('(','+(')})".replace("(+","(")
try:print(int(eval(a)))#还是eval大法好
except:print("UNKNOWN")
下次看看能不能水个紫题