这道题题目同样还是应该反着来思考
当你在纠结应该怎样保存如果有多个最小次数的时候
你不妨反过来想,我只要知道最小次数是多少,如果遇到大于这个次数的,全部打印出来就完毕
#include <bits/stdc++.h>
using namespace std;
void deleteMin(string s) {
//vector数组初始化
vector<int> hash(26,0);
//找找出次数最少的
for(int i = 0; i < s.size(); i++) {
hash[int(s[i]-'a')]+=1;
}
int minnum = hash[s[0]-'a'];
for(int j = 0; j < 26; j++) {
if(minnum > hash[j] && hash[j] > 0) {
minnum = hash[j];
}
}
for(int k = 0; k < s.size(); k++) {
//在字符s[k]在hash表中出现的次数大于minum,说明s[k]出现的频数更高,那么打印出来
if(hash[s[k] - 'a'] > minnum) {
cout<<s[k];
}
}
}
int main() {
string s;
getline(cin,s);
deleteMin(s);
return 0;
}