题解 | #名字的漂亮度#

名字的漂亮度

http://www.nowcoder.com/questionTerminal/02cb8d3597cf416d9f6ae1b9ddc4fde3

思路(使用了from collections import Counter)

  1. 存一个{字符,出现次数}字典;
  2. 排序(使用value即可,我们不关心字符是什么,只关心出现次数),从大到小;
  3. 遍历values列表,与“26--”挨个相乘求和;
  4. 打印这个和。

代码

from collections import Counter

while True:
    try:
        n = int(input())
        while(n):
            n = n-1
            s = input()
            counter = Counter(s)
            counter = sorted(counter.values(), reverse=True)
            start = 26
            sum = 0
            for i in counter:
                sum = sum+i*start
                start -= 1
            print(sum)
    except:
        break
全部评论

相关推荐

09-30 12:39
门头沟学院 C++
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务