字符统计

字符统计

http://www.nowcoder.com/questionTerminal/c1f9561de1e240099bdb904765da9ad0

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

全部评论
66666
1
送花
回复
分享
发布于 2021-07-24 22:18
确实牛,乘数1000改成任意比123(对应a~z的最大ASCII码)大的数应该都可以,这样可能会更方便其他小伙伴理解
1
送花
回复
分享
发布于 2022-04-14 01:55
秋招专场
校招火热招聘中
官网直投
我看到了1000就意识到这是要整活了
8
送花
回复
分享
发布于 2021-08-18 11:08
我哭啦,我写了几十行搞了3h,一看题解emo了 谁安慰我一下
1
送花
回复
分享
发布于 2022-04-15 14:45
s.count(x)*1000-ord(x) 妙啊
2
送花
回复
分享
发布于 2021-05-25 21:28
可以双重排序的 s = input() res = list(set(s)) res.sort(key=lambda x: (-s.count(x), ord(x))) # 先按照字符统计个数降序,再按照ascii码升序 print(''.join(res))
2
送花
回复
分享
发布于 2022-07-14 23:19
和我的想法差不多 s, dic = input(), {} for i in set(s): dic[i] = s.count(i) x = dict(sorted(dic.items(), key= lambda x:(x[1],1-ord(x[0])), reverse=True)) [print(i, end='') for i in x.keys()]
1
送花
回复
分享
发布于 2022-05-03 19:44
好像sort,sorted可以实现双重排序
1
送花
回复
分享
发布于 2022-05-13 21:53
大佬牛逼。ASCII最大255,乘以256足矣。
1
送花
回复
分享
发布于 2022-06-12 23:49
line=input() count=sorted(list(set(line)),key=lambda x:(-line.count(x),ord(x))) print("".join(count))
1
送花
回复
分享
发布于 2022-07-08 14:46
太强了……
点赞
送花
回复
分享
发布于 2022-01-20 04:29
lambda x:s.count(x)*1000-ord(x) 是什么意思
点赞
送花
回复
分享
发布于 2022-02-18 14:55
太厉害了吧
点赞
送花
回复
分享
发布于 2022-03-05 11:06
秒秒
点赞
送花
回复
分享
发布于 2022-03-13 16:24
好厉害呀
点赞
送花
回复
分享
发布于 2022-03-16 16:39
真的可以这么搞么,,,
点赞
送花
回复
分享
发布于 2022-03-19 16:16
相当于把两个条件都考虑了,既放大了频率的差异又可以将频率相同的按照ascii码升序
点赞
送花
回复
分享
发布于 2022-04-02 13:59
秀!
点赞
送花
回复
分享
发布于 2022-04-16 19:34
妙啊
点赞
送花
回复
分享
发布于 2022-05-27 23:58
思路真的牛逼
点赞
送花
回复
分享
发布于 2022-06-08 22:00

相关推荐

头像
点赞 评论 收藏
转发
181 22 评论
分享
牛客网
牛客企业服务