题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
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]); } } }