在牛客上刷到删除字符串中出现次数最少的字符,现在将通过的代码贴一下,供大家参考。
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入,即多个字符串用回车隔开
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
char inputstr[21]={0};
while(gets(inputstr))
{
char engchar[26]={0};
int len = strlen(inputstr);
int i = 0;
for(i=0;i<len;i++)
{
engchar[inputstr[i]-'a']++;
}
int min = 20;
for(i=0;i<26;i++)
{
if(engchar[i]<min && engchar[i]>0)
min = engchar[i];
}
int j = 0;
int k = 0;
//printf("len=%d\n",min);
for(k=0;k<26;k++)
{
if(engchar[k] == min)
{
//printf("%c\n",k+'a');
//len = strlen(inputstr);
for(i=0;i<len;i++)
{
if(inputstr[i] == k + 'a')
{
//printf("%c\n",inputstr[i]);
for(j=i;j<len;j++)
{
inputstr[j]=inputstr[j+1];
}
len--;
}
}
}
}
printf("%s\n",inputstr);
}
return 0;
}