解题思路:
(1)使用哈希表来保存每个字符出现的次数,最后取出现次数不是0并且不是最小出现次数的字符即可
#include <iostream>
#include <cstring>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
void getmin(int *a,int &min) {
for(int i=0;i<26;i++) if(a[i]!=0 && a[i]<min) min = a[i];
}
void print(const string &str,string &target,int *a,int &min) {
for(int i=0;i<str.length();i++) if(a[str[i]-'a']!=min&&a[str[i]-'a']!=0) target+=str[i];
cout<<target<<endl;
}
int main() {
int a[26]={};
int min=INT32_MAX;
string str,target;
while(getline(cin,str)) {
if(str=="") cout<<""<<endl;
else {
target = "";
memset(a,0,26*sizeof(int));
for(auto&& w:str) a[w-'a']++;
getmin(a,min);
print(str,target,a,min);
}
}
return 0;
}