先算一遍基础分,“/”以外的字符用字典加字符串查找换算得分,“/”根据前一项计算,然后算一遍奖励分,两者相加即可。
最终代码有四行。
代码长度:283字节 vs. 全站第一:129字节。
import sys
x=lambda k:dict(zip('F⑤⑥⑦⑧X',[0,5,6,7,8,10])).get(k,'-123456789'.find(k))
p,q=''.join,enumerate
for a in sys.argv[1:]:s=a.split();t=p(s);c=[[x(j),10-x(t[i-1])][j=='/']for i,j in q(t)];print(sum([c[i+1],c[i+1]+c[i+2],0]['/X'.find(j)]for i,j in q(p(s[:-1])))+sum(c))
|