前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题-python3 实现删除字符串中出现次数最少的字符

面试题-python3 实现删除字符串中出现次数最少的字符

作者头像
上海-悠悠
发布2021-04-26 09:55:51
1.2K0
发布2021-04-26 09:55:51
举报
文章被收录于专栏:从零开始学自动化测试

题目

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

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

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

输入例子: abcdd

输出例子: dd

解决代码

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

代码语言:javascript
复制
"""
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
"""
# 作者-上海悠悠 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函数实现

代码语言:javascript
复制
# 首先找到出现最少次数的字符
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个字节。

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

代码语言:javascript
复制
# 作者-上海悠悠 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)))

运行结果

代码语言:javascript
复制
aabcd
abcabcf
fbasdfsa
aa
abcabc
fasfsa
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 解决代码
  • 多组输入
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档