华为机试45-名字的漂亮度
题目描述
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
输入描述:
整数N,后续N个名字
输出描述:
每个名称可能的最大漂亮程度
示例1
输入
2
zhangsan
lisi
输出
192
101
参考:
from collections import Counter while True: try: n = int(input().strip()) for _ in range(n): num = list(input().strip()) re = Counter(num) #使用 Counter res = [] for s in re: res.append(re[s]) #提取 Counter信息,不能使用keys或values res.sort(reverse = True) n = len(res) m = 0 k = 26 for s in res: m += k*s k -= 1 print(m) except: break
执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率: 100.00% 运行时间: 29ms 占用内存: 3716KB
参考2:
from collections import Counter while True: try: a=int(input()) for i in range(a): c,start,res=Counter(input()),26,0 for j in c.most_common(): res+=j[1]*start start-=1 print(res) except: break
执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率: 100.00% 运行时间: 29ms 占用内存: 3716KB