首页 > 试题广场 >

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

[编程题]删除字符串中出现次数最少的字符
  • 热度指数:387558 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

数据范围:输入的字符串长度满足 ,保证输入的字符串中仅出现小写字母

输入描述:

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



输出描述:

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

示例1

输入

aabcddd

输出

aaddd
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 回复(0)
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)
import sys

for line in sys.stdin:
    a = line
real_a=""
for i in a:
    if i.islower():
        real_a+=i

char_count = {}
for char in real_a:
    if char in char_count:
        char_count[char] += 1
    else:
        char_count[char] = 1
#print(char_count)
min_count=min(char_count.values())
min_key=[key for key, val in char_count.items() if val == min_count]
min_key = ''.join(min_key)
#print(min_key)
real_a="".join(char for char in real_a if char not in min_key)
print(real_a)
发表于 2024-05-05 23:35:41 回复(0)
lis = [i for i in input()]
liscount = sorted([lis.count(i) for i in set(lis)])
print(*[i for i in lis if lis.count(i) != liscount[0]],sep='')

编辑于 2024-04-22 09:17:17 回复(0)
string = input()
dict_count = {s: string.count(s) for s in set(string)}
min_s = min(list(dict_count.values()))
for key, value in dict_count.items():
    if value == min_s:
        string = string.replace(key, '')
print(string)

编辑于 2024-04-15 21:22:19 回复(0)
import sys

strs = input()
ls = []
for s in strs:
    ls.append(s)
dic = {}
for i in ls:
    if i not in dic.keys():
        dic[i] = 1
    else:
        dic[i] +=1
sels = list(set(ls))
for i in range(len(sels)):
    for j in range(i+1,len(sels)):
        if dic[sels[i]]>=dic[sels[j]]:
            sels[i],sels[j] = sels[j],sels[i]
        else:
            pass
tmls = []
for i in range(len(sels)):
    if dic[sels[i]]==dic[sels[0]]:
        tmls.append(sels[i])
    else:
        break
for i in ls:
    if i not in tmls:
        print(i,end='')



发表于 2024-04-08 13:35:43 回复(0)
word = input()
dict_word = {}
# 统计输入字符串所有元素出现的次数,用字典接收
for i in word:
    dict_word[i] = word.count(i)

list_value = []
# 获取出现次数最少元素出现的次数
min_value = min(dict_word.values())
# 如果该元素出现的次数和最小值相等,就保存这个元素到列表里面
for k, v in dict_word.items():
    if v == min_value:
        list_value.append(k)

list_word1 = list(word)
list_word = list(word)
# 遍历输入的元素,如果该元素存在保存了最小元素出现次数的列表里面,则删除这个元素
for j in list_word1:
    if j in list_value:
        list_word.remove(j)

str_word = ",".join(list_word).replace(",", "")
print(str_word)

编辑于 2024-03-19 11:32:14 回复(0)
a=input()
len=dict()
for i in a:
    len[i]=a.count(i)
for j in a:
    if len[j]!=min(len.values()):
        print(j,end='')
编辑于 2024-02-21 17:36:09 回复(0)
a=input()
b=list(set(a))
count=[]
for i in b:
    count.append(a.count(i))
count=min(count)
for n in a:
    if a.count(n)==count:
        a=a.replace(n,'')
print(a)
发表于 2024-02-05 18:20:08 回复(0)
S = input()
T ={}
for s in S:
    if s in T:
        T[s] += 1
    else:
        T[s] = 1
value_min = min(T.values())
T_min = []
for key, value in T.items():
    if value == value_min:
        T_min.append(key)
for s in S:
    if s not in T_min:
        print(s, end='')

发表于 2024-01-31 17:14:15 回复(0)
import sys

str = input()
list_char = []
list_char_count = []
for i in range(len(str)):
    if str[i] not in list_char:
        list_char.append(str[i])
        list_char_count.append(str.count(str[i]))
#以上步骤可以实现一个列表,一个计入符号,一个计入数量
list_char_count_min = sorted(list_char_count)[0]
#sorted得到新建的对数量进行排序的list,第一个数一定是最少的那个
list_char_count_min_index = []
for i in range(len(list_char_count)):
    if list_char_count[i] == list_char_count_min:
        list_char_count_min_index.append(int(i))
#记录最少数量符号的地址,下一步创建包含最少数量符号的list
list_char_count_min_char = [list_char[i] for i in list_char_count_min_index]
for i in range(len(str)):
    #当str中的符号不属于最少数量符号list中的成员就输出不带换行符号
    if str[i] not in list_char_count_min_char:
        print(str[i],end='')

编辑于 2024-01-16 17:24:50 回复(0)
a = input()
b = ''
lst = []
for i in a:
    lst.append([i,a.count(i)])
sorted_lst = sorted(lst,key = lambda a:a[1])
min_num = sorted_lst[0][1]
for i in a:
    if a.count(i) != min_num:
        b+=i
print(b)
发表于 2023-12-19 01:07:32 回复(0)
a = input().strip()
b, m = [a[0]], a.count(a[0])
for i in set(a):
    n = a.count(i)
    if n < m:
        b.clear()
        b.append(i)
        m = n
    elif n == m:
        b.append(i)


for i in a:
    if i not in b:
        print(i, end="")

编辑于 2023-12-15 17:46:00 回复(0)
用C语言思路写的简单易懂
a = input()
dic = {}
min = 20
for i in a:
    if i not in dic:
        dic[i] = 1
    else:
        dic[i] += 1
for i in dic:
    if dic[i]<min:
        min = dic[i]
for i in a:
    for j in dic:
        if dic[j] != min and i == j:
            print(i,end="")
发表于 2023-11-15 20:44:58 回复(0)
from collections import Counter

res = input()
cnt = Counter(res)
s = set()
for k,v in cnt.items():
    if v==min(cnt.values()):
        s.add(k)
for w in s:
    res = res.replace(w, '')
print(res)

发表于 2023-10-27 13:50:52 回复(0)
import sys

for line in sys.stdin:
    num_str = dict()
    for i in line.strip():
        num_str[i] = line.count(i)
    min_num = min(num_str.values())
    for key in num_str.keys():
        if num_str[key] == min_num:
            line = line.strip().replace(key,"")
    print(line)
发表于 2023-10-17 10:14:20 回复(0)