1.题目 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。 输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 输入描述: 字符串只包含小写
1.题目
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
输入描述:
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出描述:
删除字符串中出现次数最少的字符后的字符串。
输入例子:
abcdd
输出例子:
dd
2.解决代码
a='fbasdfsa'b=a
flag=True
newl=[]
while flag:
dell=[] #删除的字符列表
for i in a:
if i not in dell:
dell.append(i) #该轮某字符未删除,则删除
else:
newl.append(i) #该轮某字符已删除,则不再删除
flag=False #经历了else,则还需要来一轮
print(dell,newl)
print(flag)
if flag:
flag=False
if len(newl)==0:
newl=dell
else:
flag=True
a=newl #原字符串重新定义
newl=[] #剩余字符列表置空
print(flag,a)
print(newl) #求出被删除的字符列表
new=""
for i in b:
if i in newl:
new+=i
print(new)#求出未被删除的字符
需要对字符串、列表、字典的使用方法,了然于心,这样才能用起来游刃有余
a='fbasdfsa'd={}
for i in a:
if i not in d.keys():
d[i]=1
else:
d[i]+=1
print(d)
small=min(d.values())
for i in d.keys():
if d[i]==small:
a=a.replace(i,'')
print(a)
这里用到的python相关的知识点
- 字典的格式d={键1:值1,键2:值2}
- 字典里新增键,d[‘键3’]=3;因字典里的键不能重复,所以往字典里新增键时,必须先判断;
- 字典 根据值的条件,对相应的键做处理;循环遍历所有键 for i in d.keys();循环遍历所有值d[i]
- 字典 查所有值d.values(),以及找到最小值min(列表)
- 字符串中删除某些字符,这里使用替换来处理的,直接将源字符替换为空就可以了;字符串.replace(原字符,‘’)
3.多组输入
如下手动输入3组
#a='fbasdfsa'n=3
while n>0:
a=input('请输入小写英文字符串:')
print(a)
n-=1
d={}
for i in a:
if i not in d.keys():
d[i]=1
else:
d[i]+=1
print(d)
small=min(d.values())
for i in d.keys():
if d[i]==small:
a=a.replace(i,'')
print(a)