描述
给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个字符串,计算每个字符串最大可能的“漂亮度”。
本题含有多组数据。
数据范围:输入的名字长度满足 1 \le n \le 10000 \1≤n≤10000
输入描述:
第一行一个整数N,接下来N行每行一个字符串
输出描述:
每个字符串可能的最大漂亮程度
示例1
输入:
2 zhangsan lisi
复制输出:
192 101
复制说明:
对于样例lisi,让i的漂亮度为26,l的漂亮度为25,s的漂亮度为24,lisi的漂亮度为25+26+24+26=101.
思路:利用字典统计每个字符出出现的次数,然后乘以漂亮指数
n = int(input())
l = []
pd = [26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
while True:
try:
for i in range(n):
s = input()
l.append(s)
for i in l:
d = {}
count = 0
for j in i:
if j not in d:
d[j] = 1
else:
d[j] += 1
ll = sorted(d.items(),key=lambda x:x[1],reverse=True)
for i in range(len(ll)):
count += d[ll[i][0]] * pd[i]
print(count)
except:
break
优化: