当前位置 : 主页 > 编程语言 > java >

Python面试题: 实现删除字符串中出现次数最少的字符

来源:互联网 收集:自由互联 发布时间:2022-10-26
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)


【文章原创作者:ddos攻击防御 http://www.558idc.com/aqt.html欢迎留下您的宝贵建议】
上一篇:34-ES6 -class静态成员
下一篇:没有了
网友评论