zoukankan      html  css  js  c++  java
  • 面试题-python3 实现删除字符串中出现次数最少的字符

    题目

    实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
    输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

    输入描述:
    字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。

    输出描述:
    删除字符串中出现次数最少的字符后的字符串。

    输入例子:
    abcdd

    输出例子:
    dd

    解决代码

    普通点的解决思路,先分别统计每个字符出现的次数,再得到最小的次数,下一步遍历删除字符里面次数最少的,可以用replace()方法替换。

    """
    实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
    输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
    """
    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    a = "abcdd"
    
    # 先分别统计每个元素出现的次数
    d = {}
    for i in a:
        if i not in d.keys():
            d[i] = 1
        else:
            d[i] += 1
    print(d)
    
    # 再次遍历去掉次数最少的
    for j in d.keys():
        # 判断等于最小的次数  min(d.values())
        if d[j] == min(d.values()):
            a = a.replace(j, '')
    print(a)
    

    如果全部用内置函数,可以先用min函数得到最少次数的字符,根据此字符就能得到最小的次数,字符串过滤用filter函数实现

    # 首先找到出现最少次数的字符
    min_str = min(a, key=lambda x: a.count(x))
    # 根据这个字符得到次数
    n = a.count(min_str)
    # 再根据 filter 函数筛选
    print("".join(filter(lambda x:a.count(x)>n, a)))
    

    多组输入

    题目描述:

    实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
    注意每个输入文件有多组输入,即多个字符串用回车隔开

    输入描述:
    字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。

    输出描述:
    删除字符串中出现次数最少的字符后的字符串。

    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    
    aa = []
    n = 3
    while n > 0:
        a = input("")
        aa.append(a)
        n -= 1
    for j in aa:
        min_str = min(j, key=lambda x: j.count(x))
        # 根据这个字符得到次数
        n = j.count(min_str)
        # 再根据 filter 函数筛选
        print("".join(filter(lambda x:j.count(x)>n, j)))
    

    运行结果

    aabcd
    abcabcf
    fbasdfsa
    aa
    abcabc
    fasfsa
    
  • 相关阅读:
    关于relative和absolute的总结
    docker命令
    了解docker
    数据库性能监测指标(如Oracle、SqlServer)、LoadRunner 性能测试指标
    MySQL游标
    MySQL创建用户
    MySQL数据的操作
    MySQL创建数据库和表
    MySQL视图的操作
    MySQL数据备份与恢复
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14665973.html
Copyright © 2011-2022 走看看