0022. 姓名计分
* * * *
拉格朗日计划
* * * *
姓名计分

names.txt中有五千多个英文名。将这些英文名按字母序排序后,将每个名字的位置乘以其字母价值(该名字中每个字母在字母表中的位置之和),就是该英文名的得分。

例如,按照字母序排序后,位于第938位的名字是COLIN,它的字母价值是$3+15+12+9+14=53$。因此,COLIN这个英文名的得分是$938\times 53=49714$

求该文件中所有名字得分之和。

本题难度:



解答

似乎没有什么可说的,按题意直接计算即可。结果是$871198282$。

with open("022_names.txt") as f:
  for line in f:
      names=sorted([w[1:-1] for w in line.split(',')])

print  sum(sum(ord(c)-64 for c in w)*(i+1) for i,w in enumerate(names))