题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
# 让字符串中数量最多的元素,为26, """ 第一、根据题意,逐步梳理最原始的思路,逐步写到一起,从最原始的思路中逐步找规律, 让字符串中数量最多的元素,为26, 如果还有数量跟最多的一样的,则是25, 如果还有数量跟最多的一样的,则是24 数量少一点的,批量度是23, 数量再少一点的,漂亮都是22, 。。。 第二、找到规律后,梳理出代码要实现的方式是什么,先写最原始的。迭代的思维逻辑很关键,先实现小的思路,在实现大一点的思路, 比如:直接一下子处理2个字符串,你可能觉得很绕,所以,你先单独处理一个字符串,等处理ok,你再for循环处理第二个,岂不是很棒? 根据数量对字母做一个排序,字母的顺序是 数量由多到少,数量一样的放在一起。不一样的单独放开。 [(l,l,l),(c,c),b, a] [3, 2, 1, 1] [26, 25, 24, 23] 每个元素的个数乘以对应的数字,求和即可 """ num = int(input()) li = [] for i in range(num): li.append(input()) # # 先处理一个字符串 # a = [] # for j in set(li[0]): # a.append(li[0].count(j)) # b = sorted(a, reverse=True) # c = [i for i in reversed(range(27-len(a),27))] # d = [] # for k,v in zip(b,c): # k1 = int(k) # v1 = int(v) # d.append(k1*v1) # print(sum(d)) # 在处理多个字符串 for i in li: # 先处理一个字符串 a = [] for j in set(i): a.append(i.count(j)) b = sorted(a, reverse=True) c = [i for i in reversed(range(27-len(a),27))] d = [] for k,v in zip(b,c): k1 = int(k) v1 = int(v) d.append(k1*v1) print(sum(d))
#数据仓库与数据分析实习#
OD专栏练习梳理 文章被收录于专栏
OD专栏练习梳理