题目描述
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
输入描述:
整数N,后续N个名字
输出描述:
每个名称可能的最大漂亮程度
示例1
输入
2
zhangsan
lisi
输出
192
101
思路:统计字符出现的次数组成字典,按次数降序排序
出现次数最多的给最大漂亮度,以此类推
while True:
try:
n=int(input())
for i in range(n):
string=input()
strdict=dict()
for each in string:
if each in strdict:
strdict[each]+=1
else:
strdict[each]=1
strlist=sorted(strdict.items(),key=lambda x:x[1],reverse=True)
beautylist=[]
result=0
for i in range(len(strlist)):
beautylist.append(26-i)
result += strlist[i][1] *beautylist[i]
print(result)
except:
break