题解 | #删除字符串中出现次数最少的字符#

删除字符串中出现次数最少的字符

https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9

#include <stdio.h>
#include<string.h>
int main()
{
    char arr1[20]="";
    int arr2[26]={0};
    int i=0,j=0,num=21;
    scanf("%s",arr1);
    int sz=strlen(arr1);
  //将出现的字母ascii码作为下标,每出现一次,该下标对应的数组项就+1
    for(i=0;i<sz;i++)
    {
        arr2[(int)arr1[i]-97]++;
    }
  //字符串最多只有20个字符,因此一定有出现零次的,所以字符串中实际出现次数最少也为1
  //循环一次,找出最少的出现次数,哪一项大于0,并且数值最小,它的下标就对应出现次数最少的字符
    for(i=0;i<sz;i++)
    {
        if((arr2[(int)arr1[i]-97]>0)&&arr2[(int)arr1[i]-97]<num)
        {
            num=arr2[(int)arr1[i]-97];
        }
    }
  //大于该出现次数的,依次输出,不会改变顺序
  for(i=0;i<sz;i++)
        {
            if(arr2[(int)arr1[i]-97]>num)
            {
                printf("%c",arr1[i]);
            }
        }
    }
    return 0;
}

全部评论

相关推荐

07-19 13:28
长沙学院 Java
鸿哥鸿哥:学院(一本),感觉在脱ku子放屁,学院结尾的除了那几家出名的,一律按二本处理
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务