首页 > 试题广场 >

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

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

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

输入描述:

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



输出描述:

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

示例1

输入

aabcddd

输出

aaddd
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)
d = {}
strings = input()
for val in strings:
    if not d.get(val):
        d[val] = 1
    elif d.get(val):
        d[val] += 1

min_val = min(d.values())
for key, val in d.items():
    if val == min_val:
        strings = ''.join(strings.split(key))

print(strings)
发表于 2023-10-14 20:00:36 回复(0)
dict ={}
dict2 ={}
for line in sys.stdin:
    a = line.strip()
    if 1 <= len(a) <= 20:
        if a.islower() is True:
            f = []
            for x in a:
                # print(x)
                k = a.count(x)
                f.append(k)
                # print(k)
            for i in range(int(len(a))):
                dict[i] = f[i]
                dict2[i] = f[i]
            for i in list(dict.keys()):
                if dict[i] == min(list(dict.values())):
                    del dict2[i]           
            for z in list(dict2.keys()):
                print(a[z],end="")

发表于 2023-10-11 04:10:18 回复(0)
import sys

s = input()
letter = []
count=[]

for i in s:
    letter.append(i)
    count.append(s.count(i))

min_count = min(count)

while True:
    if min_count in count:
        del letter[count.index(min_count)]
        del count[count.index(min_count)]
    else:
        break

for i in letter:
    print(i,end='')

import sys

s = input()
letter = []
count=[]

for i in s:
    letter.append(i)
    count.append(s.count(i))

min_count = min(count)

while True:
    if min_count in count:
        del letter[count.index(min_count)]
        del count[count.index(min_count)]
    else:
        break

for i in letter:
    print(i,end='')

发表于 2023-10-03 06:04:41 回复(0)
while True:
    try:
        skf = input()
        aaa = []
        b = ''
        st1 = set(list(skf))
        for i in st1:
            aaa.append(skf.count(i))
            aaa.sort()
            a = int(aaa[0])
        for j in skf:
            if skf.count(j) != a:
                b = b + j
        print(b)
    except:
        break
发表于 2023-09-22 13:59:48 回复(0)
MIN = min(dic.values())
字典最小值的函数
mp=dict()
t=[]
target=""
s=input()
for i in s:
    if i in mp:
        mp[i]+=1
    else:
        mp[i]=1
for key in mp:
    t.append(mp[key])
temp=sorted(t)
for i in s:
    if mp[i]==temp[0]:
       continue
    else:
        target+=i

print(target)


发表于 2023-09-20 11:59:58 回复(0)