题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
#include <iostream> #include <map> #include <set> using namespace std; int deal(string &s,map<char,int> &l) { char c; int f=0; string s0; for(auto st : s){ for(auto e : l){ if(e.first == st){ f = 1; } } if(f != 1){ s0 = s0 + st; } f =0; } cout << s0 << endl; return 0; } int find(string s,map<char,int> &l,set<char> &q) { int cn=0; for(auto e : q){ for(auto f : s){ if(e == f){ cn++; } } if(l.size() != 0){ for(auto g : l){ if(g.second < cn){ }else if(g.second == cn){ l[e] = cn; }else{ l.clear(); l[e] = cn; } } }else { l[e] = cn; } cn =0; } return 0; } int kinds(string s,set<char> &q) { for(auto e : s){ q.insert(e); } return 0; } int main() { string s; char c; int cn=0; map<char,int> l; set<char> q; while(cin >> s){ kinds(s,q); find(s,l,q); deal(s,l); } return 0; } // 64 位输出请用 printf("%lld")