首先用set筛选出字符串里没有重复的字母,然后构建一个等长的数组记录每个字母出现的次数。最后对这个数组降序排序,构建循环,遍历加和数组中的值乘以(26-i),最后输出结果。
num=input() def max_li(str1): li=list(set(list(str1))) li1=[0]*len(li) for i in range(len(li)): for j in range(len(str1)): if li[i]==str1[j]: li1[i]+=1 li1=sorted(li1)[::-1] sum_li=0 for i in range(len(li1)): sum_li+=li1[i]*(26-i) return sum_li while True: try: print(max_li(input())) except: break