题解 | #删除字符串中出现次数最少的字符#

删除字符串中出现次数最少的字符

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")

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务