题解 | #字符统计#

字符统计

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 12:05
点赞 评论 收藏
分享
不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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