zoukankan      html  css  js  c++  java
  • python3 面试 实现删除字符串中出现次数最少的字符

    题目

    实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。
    输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

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

    输出描述:
    删除字符串中出现次数最少的字符后的字符串。

    输入例子:
    abcdd

    输出例子:
    dd

    解决代码

    代码有点绕,绞尽脑汁想了好久,才写出来的

    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)#求出未被删除的字符
            
        
    

     参考大佬的代码,看起来清晰多了,但是需要对字符串、列表、字典的使用方法,了然于心,这样才能用起来游刃有余:;https://www.cnblogs.com/yoyoketang/p/14665973.html

    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组

    #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)
    

      

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    专注技术热爱生活
    js效果我的蒙板效果实现
    KMP算法
    九月份发现的好东东记录
    ATL SERVER
    不要把项目开发当做自己个人的展示舞台
    看ProMesh.NET项目领悟到的
    谈谈编译原理和其在WEB开发中的应用3
    开发更深层次的交流产品
    Hibernate3.3.2 手动配置annotation环境
  • 原文地址:https://www.cnblogs.com/canglongdao/p/15045543.html
Copyright © 2011-2022 走看看