题目描述
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入,即多个字符串用回车隔开
输入描述:
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出描述:
删除字符串中出现次数最少的字符后的字符串。
示例1
输入
abcdd
输出
dd
题解:
思路:本题主要涉及字典的使用,简单了解一下字典
1、字典dict是python的标准数据类型之一,是一种可变的容器
2、格式是d={key1:value1,key2:value2}
3、key必须是唯一且不可变的,value可以是任意数据类型
4、键值对的输出是无序的,一般是随机顺序
5、常用方法:
方法 | 作用 |
---|---|
dict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
dict.keys() | 以列表返回一个字典所有的键 |
dict.values() | 以列表返回字典中的所有值 |
del dict[key] | 删除字典中key对应的元素 |
dict[key]=value | 新增或修改字典中的元素 |
#coding=utf-8
while True:
s=input().lower()
while len(s)>20:
s=input().lower()
d={}
#生成字典,key是输入的字符串中每个字符,value是每个字符在字符串中出现的次数
for ch in s:
d[ch]=s.count(ch)
#根据次数进行升序
values=[v for v in d.values()]
values.sort()
#字典中删除次数最少的项
item=[k for k,v in d.items() if v==values[0]]
for i in item:
del d[i]
#字符串中和字典中剩余字符相同的字符进行输出
keys=[k for k in d.keys()]
for ch in s:
if ch in keys:
print(ch,end='')
print()
说明:
目前本King的代码能力只能按上述方式实现,后续有更好的方案,欢迎各位指点,也会不定期做修改~