农民进城记-记录python学习过程

名字的漂亮度

https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3?tpId=37&tqId=21268&rp=0&ru=%2Fta%2Fhuawei&qru=%2Fta%2Fhuawei%2Fquestion-ranking&tPage=3

牛客华为机试-名字的漂亮度

题目描述

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

2
zhangsan
lisi 

Sample Output:

192
101

思路

将输入数据去重,并记录出现的次数,次数最多的记为26,其次记为25……,最大漂亮度为次数和单个字符漂亮度乘积的和

代码实现

while True:                                 #处理多组输入
    try:
        n = int(input().strip())            #接收待处理的数据个数
        if not n:break                       
        for i in range(n):                  #接收每个待处理的字符串
            s = input().strip().lower()     
            if not s.isalpha():break        #输入不是字母为非法输入
            l = []                          
            res = 0
            for i in list(set(s)):          #记录字母出现次数
                l.append(s.count(i))
            l = sorted(l,reverse=True)      #将字母出现次数从大到小排序
            for i in range(len(l)):         #计算最大漂亮度
                res += l[i]*(26-i)            
            print(res)
    except:
        break
全部评论
在你这里把题目读了好几遍,才读明白了,最大可能的漂亮度,这个哪个出的题目,我是按照a-z(1-26)给算了。
点赞 回复 分享
发布于 2022-02-28 22:15
排序不等式
点赞 回复 分享
发布于 2022-02-11 13:26

相关推荐

野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
评论
8
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务