王老头

导航

牛客网 名字的漂亮度

题目描述

给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。

输入描述:

整数N,后续N个名字

输出描述:

每个名称可能的最大漂亮程度

示例1

输入

2
zhangsan
lisi

输出

192
101

思路:关键找出名字中每个字母的个数,用set来查找避免重复。
while True:
    try:
        num = int(raw_input())
        total = [raw_input() for _ in range(num)]
        # print(total)
        for i in range(len(total)):
            temp = total[i]
            tcount = []
            stemp = list(set(temp))
            # print(stemp)
            for j in range(len(stemp)):
                count = temp.count(stemp[j])
                tcount.append(count)
            # print(tcount)
            stcount = sorted(tcount,reverse=True)
            maxv = 26
            sumv = 0
            for k in range(len(stcount)):
                eachv = stcount[k] * maxv
                maxv -= 1
                sumv += eachv
            print(sumv)

    except:
        break

 

posted on 2018-09-03 13:24  王老头  阅读(392)  评论(0)    收藏  举报