描述
给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在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.
import sys
l=sys.stdin.readlines()
item=l[1:]
def calc(d,num,p):
max_value=max(d.values())
for i in d.keys():
if d[i]==max_value:
num=num+p*d[i]
del d[i]
break
if d !={}:
return calc(d, num, p-1)
else:
return num
def create_dict(str1):
d={}
for i in str1:
if i not in d.keys():
d[i]=1
elif i in d.keys():
d[i]=d[i]+1
return d
for e in item:
key_str=e.strip('\n')
d1=create_dict(key_str)
n=calc(d1,0,26)
print(n)
l=sys.stdin.readlines()
item=l[1:]
def calc(d,num,p):
max_value=max(d.values())
for i in d.keys():
if d[i]==max_value:
num=num+p*d[i]
del d[i]
break
if d !={}:
return calc(d, num, p-1)
else:
return num
def create_dict(str1):
d={}
for i in str1:
if i not in d.keys():
d[i]=1
elif i in d.keys():
d[i]=d[i]+1
return d
for e in item:
key_str=e.strip('\n')
d1=create_dict(key_str)
n=calc(d1,0,26)
print(n)