题解 | #字符统计#

字符统计

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

我感觉写的好复杂啊,这题让我对reverse和sort有更深的理解

while True: try: # 获取输入字符串 in_str = input() if len(in_str)<1 or len(in_str)>1000: break # 定义一个字典存储字母和数字的数量,要定义一个大的初始列表,所以查了一个python的字典的setdefault用法 count_dic = {} for i in in_str: count_dic[str(i)] = count_dic.setdefault(str(i), 0) count_dic[str(i)] = count_dic[str(i)] + 1 #print(count_dic) # 获得字典值 values_list = list(set(count_dic.values())) # 利用集合去重 # 对字典值进行排序 values_list.sort(reverse=True) # reverse是参数,总把reverse当排序用 #print(values_list) #[3, 2] #print('#'*20) # 对字典值进行循环,查出对应的顺序 out_str = '' out_list = [] for val in values_list: #print(val) inner_str = '' # 内部循环的一个字符串 for key in count_dic: # print(key) if count_dic[key] == val: inner_str = inner_str + key #print(inner_str) out_list = [ ord(i) for i in inner_str] # 利用ord排序 #print(out_list) out_list.sort() #print(out_list) # 转换成字符串列表 out_list = [chr(i) for i in out_list] #print(out_list) out_str = out_str + ''.join(out_list) # 一次循环结束以后,out_list输出符合规定的小字符串 print(out_str) except: break

全部评论

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务