题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char*str = (char*)malloc(sizeof(char)*20);
char m[10] = {0};
int nn = 0;
scanf("%s",str);
int hash[150]; //创建哈希表
memset(hash, 0, sizeof(hash));
int n=strlen(str);
int i =0;
for(i=0;i<n;i++)
{
hash[(int)str[i]] +=1; //str[i]ASCII码为索引的hash表中数值加一,记录同一ASCII码字母的出现次数
}
int min = 30;
for(i = 'a';i <='z';i++)
{
if(hash[i]<=min && hash[i]>0)
{
min = hash[i]; //寻找最少出现次数
}
}
int flag = 0;
for(i=0;i<n;i++)
{
if(hash[(int)str[i]] != min) //如果hash[str[i]]的次数不为最小次数min,则输出
{
printf("%c",str[i]);
}
}
}
查看8道真题和解析