题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
#include<stdio.h>
int main()
{
char str[21] = { '0' }; //接收20个字符
while ((scanf("%s", str) != EOF))
{
int len = strlen(str);
int flag[26] = { 0 }; //存储26个小写字母输入数量
int min = 20; //假设最小值为20--总能接收20个字符且全为同个
for (int i = 0; i < len; i++) //循环存储26个小写字母在str中的输入数量
{
if (str[i] >= 'a' && str[i] <= 'z')
{
flag[str[i] - 'a']++;
}
}
for (int i = 0; i < 26; i++) //循环判断出现次数最少的字母
{
if (flag[i] && flag[i] < min)
{
min = flag[i];
}
}
for (int i = 0; i < len; i++) //循环输出,过滤数量最少字母,且仅保留小写字母
{
if ((flag[str[i]-'a'] > min) && (str[i] >= 'a' && str[i] <= 'z'))
{
printf("%c", str[i]);
}
}
printf("\n");
}
return 0;
}