题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
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")
