题解 | #字符统计#

字符统计

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

不是最简单的方法,利用list set的转换,count方法,sort方法。可以得到以下的方法:

import sys

str = input()
char_list = list(set(str))#元素表
count_list = []
for i in range(len(char_list)):
    count_list.append(str.count(char_list[i]))
    #完成数量计数
count_list_sorted = list(set(count_list))#不重复的数量排序
count_list_sorted.sort(reverse=True)#不重复的数量排序,逆序
char_usual = []
for i in range(len(count_list_sorted)): 
    if count_list.count(count_list_sorted[i]) == 1:#遍历大到小数量,如果个数为1,则输出对应符号
        for j in range(len(char_list)):
            if count_list[j] == count_list_sorted[i]:
                print(char_list[j],end='')
    else:
        for j in range(len(char_list)):
            #如果个数不唯一,利用临时数组,对应个数的符号进行append,之后排序符号组,正序输出
            if count_list[j] == count_list_sorted[i]:
                char_usual.append(char_list[j])
        char_usual.sort()
        #正序,sort()会改变原有的list,临时list用完要clear
        print(''.join(char_usual),end='')
        char_usual.clear()

看到一个很好的方法:

s = input()
l = []
for i in set(s):
    l.append((i,s.count(i)))
l.sort(key=lambda x:(-x[1],x[0]))
for i in l:
    print(i[0],end="")

全部评论

相关推荐

MScoding:你这个实习有一个是当辅导老师,这个和找技术岗没有关系吧?
点赞 评论 收藏
分享
明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务