题解 | #删除字符串中出现次数最少的字符#

删除字符串中出现次数最少的字符

https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9

# 删除字符串出现次数最少的字符

input_str = input()

def letter_idea(raw_str):
    """方法1,利用全部字母遍历(在输入不出现英文字母以外的情况下有效)"""
    letters = [item for item in 'abcdefghijklmnopqrstuvwxyz']

    detail = dict()

    for letter in letters:
        num = raw_str.count(letter)
        if num == 0:
            pass
        elif num in detail.keys():
            detail[num].append(letter)
        else:
            detail[num] = [letter]

    # 所有字符出现次数全部相等,则打印原始字符串
    if len(detail) == 1:
        print(raw_str)
    else:
        min_num = min(detail.keys())
        for i in detail[min_num]:
            raw_str = raw_str.replace(i, '')
        print(raw_str)

def general_idea(raw_str):
    """方法2,通用方法"""
    detail, res = dict(), str()
    # 数据收集
    for s in raw_str:
        if s not in detail:
            detail[s] = 1
        else:
            detail[s] += 1
    min_num = min(detail.values())
    # 结果处理   
    if len(set(detail.values())) == 1:
        print(raw_str)
    else:
        for s in raw_str:
            if detail[s] != min_num:
                res += s
    # print(detail)
    print(res)


if __name__ == '__main__':
    letter_idea(input_str)
    general_idea(input_str)

全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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