在牛客上刷到删除字符串中出现次数最少的字符,现在将通过的代码贴一下,供大家参考。
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入,即多个字符串用回车隔开
#include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char inputstr[21]={0}; while(gets(inputstr)) { char engchar[26]={0}; int len = strlen(inputstr); int i = 0; for(i=0;i<len;i++) { engchar[inputstr[i]-'a']++; } int min = 20; for(i=0;i<26;i++) { if(engchar[i]<min && engchar[i]>0) min = engchar[i]; } int j = 0; int k = 0; //printf("len=%d\n",min); for(k=0;k<26;k++) { if(engchar[k] == min) { //printf("%c\n",k+'a'); //len = strlen(inputstr); for(i=0;i<len;i++) { if(inputstr[i] == k + 'a') { //printf("%c\n",inputstr[i]); for(j=i;j<len;j++) { inputstr[j]=inputstr[j+1]; } len--; } } } } printf("%s\n",inputstr); } return 0; }