题解 | #名字的漂亮度#

名字的漂亮度

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

主要是用字典做字母数量的统计,利用sorted对字母数量进行排序。

def pretty_score(s):
    s_dict = {}#用一个字典来统计字母出现的次数,key为字母,value为对应出现的次数
    for i in s:
        if i not in s_dict:#如果字典里还没有当前这个字母,则创建一项,值初始化为1
            s_dict[i] = 1
        else:
            s_dict[i]+=1#如果当前字母已存在字典里,则其值加1
    s_dict_sorted = sorted(s_dict.items(), key=lambda d:d[1], reverse=True)#排序,注意字典按值排序的待排序内容写法:s_dict.items(), key写法=lambda d:d[1]
    score = 0
    for i in range(len(s_dict_sorted)):
        score += (26-i)*s_dict_sorted[i][1]#注意:排序返回的是元组的列表,注意注意,不然找不到值
    return score

while True:
    try:
        N =  int(input())
        for i in range(N):
            print(pretty_score(input())) 
    except:
        break
        
'''>>> s_dict={'a': 2, 'g': 1, 'h': 1, 'n': 2, 's': 1, 'z': 1}
>>> s_dict
{'a': 2, 'g': 1, 'h': 1, 'n': 2, 's': 1, 'z': 1}
>>> sorted(s_dict.items(), key=lambda kv:kv[1], reverse=True)
[('a', 2), ('n', 2), ('g', 1), ('h', 1), ('s', 1), ('z', 1)]'''
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务