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

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

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

解题思路

设置一个二维数组当做字典,第一列存字母,第二列存字母出现的次数

通过两个for循环

#include <stdio.h>
#include <string.h>
int main() {
    int lib[26][2]={0};
    char arry[20]={'\0'},a='a';
    int i=0,j=0,temp=20;
  /*将字母a-z写入字典第一列*/
    for(i=0;i<26;i++)
    {
        lib[i][0]=(int)a;
        a++;
    }
    i=0;
  /*接收待处理字符串*/
    scanf("%s",&arry);
  /*统计各个字符串出现的次数*/
    for(i=0;arry[i]!='\0';i++)
    {
        for(j=0;j<26;j++)
        {
            if((int)arry[i]==lib[j][0])
            {
                lib[j][1]++;
                break;//减少循环次数
            }
        }
    }
  /*统计出现次数最少的字符出现的次数*/
    for(i=0;i<26;i++)
    {
        if(lib[i][1]==0||lib[i][1]>temp)
        {
            continue;//减少循环次数
        }
        if(lib[i][1]>0&&lib[i][1]<temp)
        {
            temp=lib[i][1];
        }
    }
  /*将待处理字符串与字典比较,当字符相同且出现次数大于最少次数,输出当前字符*/
    for(i=0;arry[i]!='\0';i++)
    {
        for(j=0;j<26;j++)
        {
            if((int)arry[i]==lib[j][0]&&lib[j][1]>temp)
            {
                printf("%c",arry[i]);
                break;//减少循环次数
            }
        }
    }
    return 0;
}

全部评论

相关推荐

11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务