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

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

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;
}

全部评论

相关推荐

练习生懒羊羊:开飞机把这个公司创飞吧
点赞 评论 收藏
分享
但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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