题解 | #字符统计#

字符统计

https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

# 用字典存储次数,评论有牛逼操作
s = input()
d = {}

# 遍历字符串
for c in s:
  # 如果字符在字典中已经存在
  if c in d:
    # 将它的次数加一
    d[c] += 1
  else:
    # 将它作为键加入字典,并将它的次数设为一
    d[c] = 1

# 将字典中的键值对转换成列表
l = list(d.items())
# 对列表进行排序
l.sort(key=lambda x: (-x[1], x[0]))

result = ""
for t in l:
  result += t[0]

print(result)



while True:
    try:
        s = input()
        ss = sorted(list(set(s)), key=lambda x:s.count(x)*1000-ord(x), reverse=True)
        print("".join(ss))
    except:
        break

全部评论
第一部分是s.count(x)*1000,这个表示x在字符串s中出现的次数乘以1000,这样可以保证出现次数多的字符排在前面。 第二部分是-ord(x),这个表示x的ASCII码的负数,这样可以保证ASCII码小的字符排在前面。 这两部分相减,就得到了排序的依据,越大的值排在越前面。
点赞 回复 分享
发布于 2023-07-05 16:20 湖北

相关推荐

03-10 21:11
武汉大学 运营
学不懂的那种:先天考公圣体
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务