题解 | #名字的漂亮度#
名字的漂亮度
http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
'''
1、先set()获得该字符串有哪些字母
2、统计每个字母出现的次数
3、从大到小排列字母
4、给每个字母分配数字大小从26开始分配
5、求和
'''
def pld(s):
# 知道该字符串中有哪些字母
list_zm=list(set(s))# set()返回的是一个{}集合类型数组,但是可以不用list直接用sorted,返回值为列表
# 字典1:统计字符串中字母出现次数
dic1={}
for zm in s:
if zm not in dic1:
dic1[zm]=1
elif zm in dic1:
dic1[zm]=dic1[zm]+1
# 用字典里统计的数字对去重后的list_zm进行排序
list_new=sorted(list_zm,key=lambda x:dic1.get(x),reverse=True)
# 字典2:记录每个字母分配的数值
dic2={}
k=26
for w1 in list_new:
dic2[w1]=k
k=k-1
# 求和
zonghe=0
for w2 in s:
zonghe=zonghe+dic2[w2]
return zonghe
n=int(input())
for _ in range(n):
print(pld(input()))
1、先set()获得该字符串有哪些字母
2、统计每个字母出现的次数
3、从大到小排列字母
4、给每个字母分配数字大小从26开始分配
5、求和
'''
def pld(s):
# 知道该字符串中有哪些字母
list_zm=list(set(s))# set()返回的是一个{}集合类型数组,但是可以不用list直接用sorted,返回值为列表
# 字典1:统计字符串中字母出现次数
dic1={}
for zm in s:
if zm not in dic1:
dic1[zm]=1
elif zm in dic1:
dic1[zm]=dic1[zm]+1
# 用字典里统计的数字对去重后的list_zm进行排序
list_new=sorted(list_zm,key=lambda x:dic1.get(x),reverse=True)
# 字典2:记录每个字母分配的数值
dic2={}
k=26
for w1 in list_new:
dic2[w1]=k
k=k-1
# 求和
zonghe=0
for w2 in s:
zonghe=zonghe+dic2[w2]
return zonghe
n=int(input())
for _ in range(n):
print(pld(input()))
【牛客站内】华为机试题—中等 文章被收录于专栏
【牛客站内】华为机试题练习记录