【华为机试Python3题解】HJ23删除字符串中出现次数最少的字符

该博客介绍了如何删除字符串中出现次数最少的字符。提供了两种解决方案:第一种是逐个比较并打印,第二种是先统一替换再打印。通过Python代码展示了如何实现这一操作,包括读取字符串,计算每个字符出现的次数,找到最少次数的字符并进行删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目介绍

  • 原题链接:HJ23 删除字符串中出现次数最少的字符
  • 描述
    实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
  • 数据范围:输入的字符串长度满足 1 ≤ n ≤ 20 1 \le n \le 20 1n20,保证输入的字符串中仅出现小写字母
  • 输入描述:字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
  • 输出描述:删除字符串中出现次数最少的字符后的字符串。
  • 示例1
    输入:
    aabcddd
    
    输出:
    aaddd
    

题解1:追一先比较再打印

dic = {}
s = input()
for i in s:
    if i in dic:
        dic[i] += 1
    else:
        dic[i] = 1
m = min(dic.values())
for i in s:
    if dic[i] > m:
        print(i, end='')

在这里插入图片描述

题解2:先统一替换再打印

"""
题解2:先统一替换再打印
"""
s = input()
dic = {}
for i in s:
    if i in dic:
        dic[i] += 1
    else:
        dic[i] = 1
m = min(dic.values())
for i, value in dic.items():
    if value == m:
        s = s.replace(i, '')
print(s)

在这里插入图片描述

华为中,处理字符串拆分与填充是一个基础但关键的技能点。为了提高代码的可读性和效率,推荐使用Python内置的字符串处理函数。以下是实现该功能的步骤和代码示例。 参考资源链接:[华为OD真题详解与代码示例](https://wenku.csdn.net/doc/7qr629uams?spm=1055.2569.3001.10343) 首先,我们需要从标准输入中获取连续输入的字符串。在Python中,可以使用`input()`函数来实现。由于字符串的长度可能会有所不同,我们需要对每个字符串进行检查,并按照指定的长度进行拆分。如果字符串长度小于指定长度,则需要进行填充。 示例代码如下: ```python import sys def split_and_fill_strings(): while True: # 持续读取输入直到输入为'0' input_str = input() if input_str == '0': break # 指定长度为8 length = 8 # 如果字符串长度小于8,则使用'0'填充至长度为8 filled_str = input_str.ljust(length, '0') print(filled_str) ``` 在这个示例中,我们使用了`ljust()`方法来对字符串进行右对齐,并使用'0'进行填充直到长度达到8。这种方式简单明了,且易于理解,适用于处理字符串长度不一的情况。 此外,如果你需要更深入地理解字符串的处理,或者想要学习更多的算法和数据结构知识,建议阅读《华为OD真题详解与代码示例》。这本书提供了详尽的题解和代码实例,帮助你更好地备战华为,并在实际的编程中发挥更大的潜力。掌握这些技巧将使你在中更加得心应手,也能在解决实际问题时提供更多的可能性。 参考资源链接:[华为OD真题详解与代码示例](https://wenku.csdn.net/doc/7qr629uams?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

COCO56(徐可可)

建议微信红包:xucoco56

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值