描述
实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
数据范围:输入的字符串长度满足 1≤n≤20 ,保证输入的字符串中仅出现小写字母
输入描述:
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出描述:
删除字符串中出现次数最少的字符后的字符串。
示例
输入:
aabcddd
输出:
aaddd
代码
思路一:自己的思路,判断每个字符在输入字符串中的数量,构造一个字典,这个字符作为key,数量作为value。最后排序,找出最小值,从输入字符串中替换为空。
python
n = input()
if 1<= len(n) <= 20:
my_dict = {}
for i in range(len(n)):
c = n[i]
if my_dict.get(c) is None:
num = n.count(c)
my_dict[c] = num
# 根据字典的值进行排序
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
# print(sorted_dict)
# 输出排序后的字典
min = sorted_dict[0][1]
for key, value in sorted_dict:
if value == min:
n = n.replace(key, "")
else:
break
print(n)
思路二:别人的思路,前期思路一样,构造对象。只是最后先找出最小值,然后轮询输入字符串来构造输出字符串,发现是最小值字符则不构造新的字符串。
python
s = input()
if 1<= len(s) <= 20:
dic, res = {}, ''
for c in s:
if c not in dic:
dic[c] = 1
else:
dic[c] += 1
Min = min(dic.values())
for c in s:
if dic[c] != Min:
res += c
print(res)
知识点
字典: items()与values()
字符串替换: replace