题目
有一个字符串由数字和英文字母组成或只有数字或字母,现需要统计英文字母出现的次数,并按从大到小依次输出这些英文字母和其出现的次数。
示例1:
输入
AAAB1ccb5
输出
A3c2B1b1
代码
# 输入:AAAB1ccb5
# 输出:A3c2B1b1
class Solution:
def printOutput(self, input):
# write code here
res = []
d = dict()
for x in input:
d[x] = input.count(x)
# print(d.items())
d3 = sorted(d.items(), key=lambda kv: kv[1], reverse=True)
# 或d3 = sorted(d.items(), key=lambda kv: (-kv[1], kv[0]))
# d3=[('A', 3), ('c', 2), ('B', 1), ('1', 1), ('b', 1), ('5', 1)],排序后为元素为元组的列表
for k in d3:
if 'a' <= k[0] <= 'z' or "A" <= k[0] <= 'Z':
res.append(k[0])
res.append(k[1])
return ''.join(str(x) for x in res)
arr = input()
s = Solution()
result = s.printOutput(arr)
print(result)