HJ23. 删除字符串中出现次数最少的字符
描述
输入描述
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出描述
删除字符串中出现次数最少的字符后的字符串。
示例1
输入:
aabcddd
输出:
aaddd
C 解法, 执行用时: 1ms, 内存消耗: 304KB, 提交时间: 2021-09-08
#include <stdio.h> #include <string.h> int main() { char str[21]; while(scanf("%s",&str) != EOF){ int min = 20; int num[128] = {0}; for(int i=0; i<strlen(str); i++){ num[str[i]]++; } for(int i=0; i<128; i++){ if(num[i] != 0 && num[i] < min){ min = num[i]; } } for(int i=0; i<strlen(str); i++){ if(num[str[i]] != min){ printf("%c",str[i]); } } printf("\n"); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 320KB, 提交时间: 2021-08-22
#include <stdio.h> #include <string.h> int main() { char a[1000]; while (~scanf("%s\n", a)) { int b[1000] = {0}; int min = 20; for (int i = 0; i < strlen(a); i++) { b[a[i] - 'a']++; } for (int i = 0; i < 1000; i++) { if (b[i] != 0 && b[i] < min) { min = b[i]; } } for (int i = 0; i < strlen(a); i++) { if(b[a[i] - 'a'] > min) { printf("%c", a[i]); } } printf("\n"); } return 0; }