首页 > 试题广场 >

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

[编程题]删除字符串中出现次数最少的字符
  • 热度指数:401327 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的仅由小写字母构成的字符串,删除字符串中出现次数最少的字符。输出删除后的字符串,字符串中其它字符保持原来的顺序。
\hspace{15pt}特别地,若有多个字符出现的次数都最少,则把这些字符都删除。

输入描述:
\hspace{15pt}在一行上输入一个长度为 1 \leqq {\rm length}(s) \leqq 20 ,仅由小写字母构成的字符串 s ,代表待处理的字符串。


输出描述:
\hspace{15pt}在一行上输出一个字符串,代表删除后的答案。保证这个字符串至少包含一个字符。
示例1

输入

aabcddd

输出

aaddd

说明

\hspace{15pt}在这个样例中,出现次数最少的字符为 \texttt{`b'}\texttt{`c'} ,因此需要同时删除这两个字符。
old_str = input().strip()

word_map = {}

for i, sub in enumerate(old_str):
    if sub in word_map:
        word_map[sub]+=1
        continue
    word_map.update({sub:1})

# 按字母出现次数排序
word_list = sorted(list(word_map.items()), key=lambda x: x[1])

# 待删除字母(默认第一个)
del_word = [word_list[0][0]]
# 添加相同次数字母(从第二个开始遍历)
for word in word_list[1:]:
    if word[1] != word_list[0][1]:  # 与第一个出现次数不同
        break
    del_word.append(word[0])

for word in del_word:
    old_str = old_str.replace(word, '')

print(old_str)
    

发表于 2025-06-21 16:44:55 回复(0)
s = input()
dic = {}
for c in s:
    dic[c] = s.count(c)
# dic = sorted(dic.items(), key=lambda x: x[1])
# num = dic[0][1]
num = min(dic.values())
res = []
for i in s:
    if s.count(i) != num:
        res.append(i)
print("".join(res))

发表于 2025-06-21 15:52:38 回复(0)
str = input()
l1 = list(str)
d1 = {}

for i in str:
    d1[i] = str.count(i)
for j in d1:
    if d1[j] == min(d1.values()) and min(d1.values()) ==1:
        l1.remove(j)
    elif d1[j] == min(d1.values()) and min(d1.values()) != 1:
        for i in range(min(d1.values())):
            l1.remove(j)
print(''.join(l1))
发表于 2025-06-04 17:08:03 回复(0)
#考虑了输入时出现例如aa单一字母组成的字符串的情况
s=list(input())

lis=[]
for i in s:
    lis.append(s.count(i))

lis2=[]
for i in range(len(s)):
    if lis[i]==len(s):
        lis2=s
    elif min(lis)==lis[i]:
        continue
    else:
        lis2.append(s[i])
   
print("".join(lis2))

发表于 2025-05-27 18:59:25 回复(0)
s = input()

dic = {} # Initialize a dictionary to count the occurrence of the letters.
for char in s:
    if char not in dic:
        dic[char] = 1
    else:
        dic[char] += 1

lowest_occur = min(dic.values())

str_rem = '' # Use an empty string to store letters to remove
for key, value in dic.items(): # Use the .items() method to iterate over the key-value pairs.
    if value == lowest_occur:
        str_rem += key

for char in str_rem:
    s = s.replace(char, "") # Use the .replace() method to remove the specified characters in str_rem.

print(s)
发表于 2025-04-08 17:49:15 回复(0)
s=input().strip()
dic = {char: s.count(char) for char in set(s)}
c=min(dic.values())
for i in s:
if dic[i]==c:
s=s.replace(i,'')
print(s)

发表于 2025-04-03 01:57:50 回复(0)
str1 = input()
list1 = list(set(str1))
count_dict = {}
for i in list1:
    count = str1.count(i)
    count_dict[i] = count
need_replace = []
for key, value in count_dict.items():
    if value == min(count_dict.values()):
        need_replace.append(key)

for i in need_replace:
    str1 = str1.replace(i, '')
print(str1)

发表于 2025-04-01 12:44:16 回复(0)
a=list(input())
q=[]
for i in a:
    o=a.count(i)
    q.append(o)
b=min(q)
t=q.count(b)
o=a[q.index(b)]
a.pop(a.index(o))
try:
    while 1:
        q.pop(q.index(b))
        o=a[q.index(b)]
        a.pop(a.index(o))
except:
    pass
for i in a:
    print(i,end="")

   
发表于 2025-03-29 19:40:05 回复(0)
from collections import Counter
str_ = input()
dict_ = Counter(list(str_.lower()))
min_val = min(dict_.values())
print(''.join([key for key in list(str_.lower()) if dict_[key]!=min_val]))

from collections import Counter
str_ = input()
dict_ = Counter(list(str_.lower()))
min_val = min(dict_.values())
print(''.join([key for key in list(str_.lower()) if dict_[key]!=min_val]))

发表于 2025-03-13 06:54:04 回复(0)
感觉好理解些
s = input()
n = set(s)
a = []
for i in n:
a.append(s.count(i))
for i in s:
if s.count(i) != min(a):
print(i,end='')
发表于 2025-03-10 15:41:21 回复(0)
a = input()
lis =[]
d = a.count(a[0])
for element in  a :
    num = a.count(element)
    if num < d:
        lis = []
        lis.append(element)
        d = num
    elif num == d:
        lis.append(element)
    else:
        continue
for i in lis:
    a = a.replace(i,"")
print(a)

发表于 2025-02-28 15:26:20 回复(0)
n=input()
s=set(n)
m=[]
p=[]
for j in s:
      mi=n.count(j)
      p.append(mi)
result=min(p)
for i in n:
  if n.count(i) !=result:
       m.append(i)
print("".join(m))        

发表于 2025-01-25 22:04:30 回复(0)
from collections import Counter
a = input()
r = Counter(a)# 统计字符中每个字符出现的次数,并放到一个字典中
# 找到出现次数最少的值
minvalue = min(r.values())

# 初始化一个空字符串来存储结果
s = ""

for char in a:
    if r[char] > minvalue:
        s += char

print(s)
发表于 2024-12-03 10:38:09 回复(0)
strr = input()
a = {}
for i in strr:
    if i in a:
        a[i] += 1
    else:
        a[i] = 1
minn = min(a.values())
outt = ''
for index in strr:
    if a[index] != minn:
        outt += index
    else:
        pass
print(outt)
发表于 2024-11-25 00:39:50 回复(0)
a = input()
b = ''
for i in a:
    if a.count(i) > min(a.count(i) for i in a):
        b += i
print(b)

发表于 2024-10-06 20:06:19 回复(2)
a=input()
b=set(a)
la={}
def count_char(str,char):
    n=0
    for i in str:
        if i==char:
            n+=1
    return n

for i in b:
    num=count_char(a,i)
    la[i]=num
min_value = min(la.values())
min_keys = [key for key, value in la.items() if value == min_value]

result=list(a)
for d in min_keys:
    result.remove(d)
print(''.join(result))
发表于 2024-08-18 19:46:31 回复(0)
a=input()
b=dict()
for i in a:
    b[i]=b.get(i,0)+1
for i in a:
    if b[i]!=min(b.values()):
        print(i,end='')

发表于 2024-06-16 14:10:34 回复(0)
"""
1. 计算每个字符出现的次数
2. replace
"""

s = input()

letters = []

# 获取元素范围
sl = list(set(list(s)))

# 比较字母出现次数和最小数
for l in sl:
    if s.count(l) == min([s.count(i) for i in sl]):
        letters.append(l)
# 替换为空
for letter in letters:
    s = s.replace(letter,'')

print(s)

发表于 2024-05-09 19:17:11 回复(0)