题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
#include <stdio.h> #include <string.h> void deletechar(char* s, char x) { int i = 0; int j = 0; while (s[i] != '\0') { if (s[i] != x) { s[j] = s[i]; j++; } i++; } s[j] = '\0'; } void count(char* s, int* y) { int l = strlen(s); int i; int a; for (i = 0; i < l; i++) { a = s[i]; y[a]++; } } int main() { char s[21]; gets(s); int y[130]; memset(y, 0, sizeof(y)); count(s, y); int i; int low = 20; for (i = 97; i < 123; i++) { if (y[i] != 0 && y[i] < low) low = y[i]; } i = 0; while (i < strlen(s)) { int j = s[i]; if (y[j] == low) deletechar(s, s[i]); else i++; } printf("%s\n", s); return 0; }