首页 > 其他 > 详细

华为机试45-名字的漂亮度

时间:2020-08-31 23:20:13      阅读:71      评论:0      收藏:0      [点我收藏+]

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

输出描述:
每个名称可能的最大漂亮程度

示例1
输入
2
zhangsan
lisi
输出
192
101

 

参考:

from collections import Counter
while True:
    try:
        n = int(input().strip())
        for _ in range(n):
            num = list(input().strip())
            re = Counter(num)     #使用 Counter
            res = []
            for s in re:
                res.append(re[s])   #提取 Counter信息,不能使用keys或values
            res.sort(reverse = True)
            n = len(res)
            m = 0
            k = 26
            for s in res:
                m += k*s
                k -= 1
            print(m)
    except:
        break

执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率: 100.00% 运行时间: 29ms 占用内存: 3716KB

 

参考2:

技术分享图片
from collections import Counter
while True:
    try:
        a=int(input())
        for i in range(a):
            c,start,res=Counter(input()),26,0
            for j in c.most_common():
                res+=j[1]*start
                start-=1
            print(res)
 
    except:
        break
技术分享图片

执行结果: 答案正确:恭喜!您提交的程序通过了所有的测试用例 用例通过率: 100.00% 运行时间: 29ms 占用内存: 3716KB

 

华为机试45-名字的漂亮度

原文:https://www.cnblogs.com/ai-learning-blogs/p/13592386.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!